Many functional programs — state machines top-down and bottom-up parsers, evaluators, GUI initialization graphs, etc. — are conveniently expressed as groups of mutually recursive bindings. One therefore expects program generators, such as those written in MetaOCaml, to be able to build programs with mutual recursion.
Unfortunately, currently MetaOCaml can only build recursive groups whose size is hard-coded in the generating program. The general case requires something other than quotation, and seemingly weakens static guarantees on the resulting code. We describe the challenges and propose a new language construct for assuredly generating binding groups of arbitrary size~– illustrating with a collection of examples for mutual, n-ary, heterogeneous, value and polymorphic recursion.
Tue 15 JanDisplayed time zone: Belfast change
14:00 - 15:30 | |||
14:00 30mTalk | Extracting a Call-by-Name Partial Evaluator from a Proof of Termination PEPM Kenichi Asai Ochanomizu University DOI File Attached | ||
14:30 30mTalk | Futures and Promises in Haskell and Scala PEPM Tamino Dauth Karlsruhe University of Applied Sciences, Germany, Martin Sulzmann Karlsruhe University of Applied Sciences, Germany DOI File Attached | ||
15:00 28mTalk | Generating Mutually Recursive Definitions PEPM DOI Pre-print | ||
15:28 2mPoster | Advanced Futures and Promises in C++ (poster) PEPM Tamino Dauth Karlsruhe University of Applied Sciences, Germany, Martin Sulzmann Karlsruhe University of Applied Sciences, Germany |