arXiv · 2611.04993
Linking as Evaluation: Correct Separate Compilation via First-Class Environments
Abstract
Separate compilation is central to modular software: components are compiled independently and linked into an executable. Separate compilation is correct when a linked program behaves like the program formed by merging its sources. This property is less routine to prove than type soundness because it requires a formal account of linking. We present $λ_{\mathsf{SCE}}$, a simply typed calculus in which linking, modules, and environments are all first-class. Programmers control module linking through a link operator, which a type-directed elaboration translates into ordinary terms of a core calculus of first-class environments. The core calculus's existing evaluation rules then perform the linking: linking as evaluation. Linking independently compiled modules yields the same core term as elaborating their source link. Therefore, compilation and linking commute by construction. As a result, separate compilation correctness follows directly from the semantics preservation for both static and dynamic linking. All meta-theory is mechanized in Lean 4, and we implement a compiler to WebAssembly in OCaml.
Explore related subjects
Keep this discovery
Explore connections, maps & timelines
Jam Kabeer Ali Khan, Jinhao Tan, Bruno C. d. S. Oliveira. 2026-11-03. Linking as Evaluation: Correct Separate Compilation via First-Class Environments. https://arxiv.org/abs/2611.04993
Cite the original work for its findings. Save a collection to share your selection of sources.