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
Explore connections, maps & timelines
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.