arXiv · 1711.03871
FunTAL: Reasonably Mixing a Functional Language with Assembly
Abstract
We present FunTAL, the first multi-language system to formalize safe interoperability between a high-level functional language and low-level assembly code while supporting compositional reasoning about the mix. A central challenge in developing such a multi-language is bridging the gap between assembly, which is staged into jumps to continuations, and high-level code, where subterms return a result. We present a compositional stack-based typed assembly language that supports components, comprised of one or more basic blocks, that may be embedded in high-level contexts. We also present a logical relation for FunTAL that supports reasoning about equivalence of high-level components and their assembly replacements, mixed-language programs with callbacks between languages, and assembly components comprised of different numbers of basic blocks.
Explore related subjects
Keep this discovery
Daniel Patterson, Jamie Perconti, Christos Dimoulas, Amal Ahmed. 2017-11-10. FunTAL: Reasonably Mixing a Functional Language with Assembly. https://doi.org/10.1145/3140587.3062347
Cite the original work for its findings. Save a collection to share your selection of sources.