Show simple item record

dc.contributor.authorJamner, Dustin
dc.contributor.authorKammer, Gabriel
dc.contributor.authorNag, Ritam
dc.contributor.authorChlipala, Adam
dc.date.accessioned2025-12-04T19:13:05Z
dc.date.available2025-12-04T19:13:05Z
dc.date.issued2025-10-09
dc.identifier.issn2475-1421
dc.identifier.urihttps://hdl.handle.net/1721.1/164200
dc.description.abstractWe present Pyrosome, a generic framework for modular language metatheory that embodies a novel approach to extensible semantics and compilation, implemented in Coq. Common techniques for semantic reasoning are often tied to the specific structures of the languages and compilers that they support. Contextual equivalence is difficult to work with directly, and both logical relations and transition system-based approaches typically fix a specific notion of effect globally. While modular transition systems have been effective in imperative settings, they are suboptimal for functional code. These limitations restrict the extension and composition of semantics in these systems. In Pyrosome, verified compilers are fully extensible, meaning that to extend a language simply requires defining and verifying the compilation of the new feature, reusing the old correctness theorem for all other cases. The novel enabling idea is an inductive formulation of equivalence preservation that supports the addition of new rules to the source language, target language, and compiler. Pyrosome defines a formal, deeply embedded notion of programming languages with semantics given by dependently sorted equational theories, so all compiler-correctness proofs boil down to type-checking and equational reasoning. We support vertical composition of any compilers expressed in our framework in addition to feature extension. Since our design requires compilers to support open programs, our correctness guarantees support linking with any target code of the appropriate type. As a case study, we present a multipass compiler from System F with simple references, through CPS translation and closure conversion. Specifically, we demonstrate how we can build such a compiler incrementally by starting with a compiler for simply typed lambda-calculus and adding natural numbers, the unit type, recursive functions, and a global heap, then extending judgments with a type environment and adding type abstraction, all while reusing the original theorems. We also present a linear version of the simply typed CPS pass and compile a small imperative language to the simply typed target to show how Pyrosome handles substructural typing and imperative features.en_US
dc.publisherACMen_US
dc.relation.isversionofhttps://doi.org/10.1145/3763052en_US
dc.rightsCreative Commons Attributionen_US
dc.rights.urihttps://creativecommons.org/licenses/by/4.0/en_US
dc.sourceAssociation for Computing Machineryen_US
dc.titlePyrosome: Verified Compilation for Modular Metatheoryen_US
dc.typeArticleen_US
dc.identifier.citationDustin Jamner, Gabriel Kammer, Ritam Nag, and Adam Chlipala. 2025. Pyrosome: Verified Compilation for Modular Metatheory. Proc. ACM Program. Lang. 9, OOPSLA2, Article 274 (October 2025), 28 pages.en_US
dc.contributor.departmentMassachusetts Institute of Technology. Department of Electrical Engineering and Computer Scienceen_US
dc.relation.journalProceedings of the ACM on Programming Languagesen_US
dc.identifier.mitlicensePUBLISHER_POLICY
dc.eprint.versionFinal published versionen_US
dc.type.urihttp://purl.org/eprint/type/JournalArticleen_US
eprint.statushttp://purl.org/eprint/status/PeerRevieweden_US
dc.date.updated2025-11-01T07:56:17Z
dc.language.rfc3066en
dc.rights.holderThe author(s)
dspace.date.submission2025-11-01T07:56:18Z
mit.journal.volume9en_US
mit.journal.issueOOPSLA2en_US
mit.licensePUBLISHER_CC
mit.metadata.statusAuthority Work and Publication Information Neededen_US


Files in this item

Thumbnail

This item appears in the following Collection(s)

Show simple item record