🤖 AI Summary
This paper addresses the problem of redundant semantic modeling of compilers and cross-language interoperability. It proposes a unified compiler model based on open-term multilingual semantic reduction systems, departing from conventional syntactic translation. Methodologically, cross-language reduction rules formally define both ahead-of-time (AOT) and just-in-time (JIT) compilation behaviors; properties such as confluence and type preservation directly yield partial formal guarantees of compilation correctness and secure compilation. The contributions are threefold: (1) the first holistic characterization of compilation as a multilingual reduction system that simultaneously defines both compilation semantics and interoperability semantics; (2) natural, structural support for uniform AOT/JIT interpretation via the reduction framework; and (3) significant simplification of secure compilation proofs, yielding novel semantic insights into compiler correctness and language interoperability.
📝 Abstract
Modeling interoperability between programs in different languages is a key problem when modeling verified and secure compilation, which has been successfully addressed using multi-language semantics. Unfortunately, existing models of compilation using multi-language semantics define two variants of each compiler pass: a syntactic translation on open terms to model compilation, and a run-time translation of closed terms at multi-language boundaries to model interoperability.
In this talk, I discuss work-in-progress approach to uniformly model a compiler entirely as a reduction system on open term in a multi-language semantics, rather than as a syntactic translation. This simultaneously defines the compiler and the interoperability semantics, reducing duplication. It also provides interesting semantic insights. Normalization of the cross-language redexes performs ahead-of-time (AOT) compilation. Evaluation in the multi-language models just-in-time (JIT) compilation. Confluence of multi-language reduction implies compiler correctness, and part of the secure compilation proof (full abstraction), enabling focus on the difficult part of the proof. Subject reduction of the multi-language reduction implies type-preservation of the compiler.