Compilation as Multi-Language Semantics
By: William J. Bowman
Potential Business Impact:
Makes computer programs work together safely.
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.
Similar Papers
Symbolic Parallel Composition for Multi-language Protocol Verification
Cryptography and Security
Makes computer security work across different languages.
M, Toolchain and Language for Reusable Model Compilation
Software Engineering
Builds complex systems safely from one model.
End-to-end Compositional Verification of Program Safety through Verified and Verifying Compilation
Programming Languages
Keeps computer programs safe even when mixing code.