Cakes That Bake Cakes: Dynamic Computation in CakeML
Artikel i vetenskaplig tidskrift, 2023

We have extended the verified CakeML compiler with a new language primitive, Eval, which permits evaluation of new CakeML syntax at runtime. This new implementation supports an ambitious form of compilation at runtime and dynamic execution, where the original and dynamically added code can share (higher-order) values and recursively call each other. This is, to our knowledge, the first verified run-Time environment capable of supporting a standard LCF-style theorem prover design. Modifying the modern CakeML compiler pipeline and proofs to support a dynamic computation semantics was an extensive project. We review the design decisions, proof techniques, and proof engineering lessons from the project, and highlight some unexpected complications.

interactive theorem proving

compiler verification

dynamic computation

Författare

Thomas Sewell

University of Cambridge

Magnus Myreen

Chalmers, Data- och informationsteknik, Formella metoder

Yong Kiam Tan

R. Kumar

Alexander Mihajlovic

Oskar Abrahamsson

Chalmers, Data- och informationsteknik, Formella metoder

S. Owens

Proceedings of the ACM on Programming Languages

24751421 (eISSN)

Vol. 7 152

Ämneskategorier

Språkteknologi (språkvetenskaplig databehandling)

Metallurgi och metalliska material

Datavetenskap (datalogi)

Datorsystem

DOI

10.1145/3591266

Mer information

Senast uppdaterat

2024-01-03