This program is tentative and subject to change.
Program generation is a useful approach to eliminating abstraction overhead and improving program performance. MacoCaml is a recent implementation in the OCaml compiler that combines a notion of macros with phase separation and quotation based staging for compile-time code generation. However, MacoCaml does not support module functors, a key abstraction mechanism in OCaml. In this work, we present a language design that combines functors and compile-time code generation. We formalize our design as a source calculus which, after compile-time code generation, elaborates to a core calculus that enforces phase separation between modules and structures living in different phases. We establish desirable properties, including syntactic type soundness of the core calculus, elaboration soundness, and phase distinction. We believe this study lays a foundation for guiding the continued exploration and implementation of the OCaml macro system.
This program is tentative and subject to change.
Wed 4 SepDisplayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change
10:30 - 12:00 | Meta-Programming, Staging, Generic Programming, Partial EvaluationICFP Papers and Events / JFP First Papers | ||
10:30 18mTalk | Staged Compilation with Module Functors ICFP Papers and Events Tsung-Ju Chiang University of Toronto, Jeremy Yallop University of Cambridge, Leo White Jane Street, Ningning Xie University of Toronto DOI Pre-print | ||
10:48 18mTalk | A Safe Low-level Language for Computer Algebra and its Formally Verified Compiler ICFP Papers and Events | ||
11:06 18mTalk | Deriving with Derivatives: Optimizing Incremental Fixpoints for Higher-Order Flow Analysis ICFP Papers and Events | ||
11:24 18mTalk | Compiled, Extensible, Multi-language DSLs (Functional Pearl) ICFP Papers and Events DOI Pre-print | ||
11:42 18mTalk | Knuth–Morris–Pratt illustrated (JFP Functional Pearls )JFP First Paper JFP First Papers Cameron Moy Northeastern University DOI |