Minuska: Towards a Formally Verified Programming Language Framework
Jan Tu\v{s}il, Jan Obdr\v{z}\'alek

TL;DR
Minuska is a formal framework that generates provably correct interpreters from language definitions, enhancing trustworthiness of language tools through formal semantics and proof assistant implementation.
Contribution
It introduces Minuska, a practical framework that ensures correctness of interpreters generated from formal language definitions using Coq.
Findings
Supports nontrivial languages with strong correctness guarantees
Uses Coq to implement and verify interpreters
Provides formal semantics for language definitions
Abstract
Programming language frameworks allow us to generate language tools (e.g., interpreters) just from a formal description of the syntax and semantics of a programming language. As these frameworks tend to be quite complex, an issue arises whether we can trust the generated tools. To address this issue, we introduce a practical formal programming language framework called Minuska, which always generates a provably correct interpreter given a valid language definition. This is achieved by (1) defining a language MinusLang for expressing programming language definitions and giving it formal semantics and (2) using the Coq proof assistant to implement an interpreter parametric in a MinusLang definition and to prove it correct. Minuska provides strong correctness guarantees and can support nontrivial languages while performing well. This is the extended version of the SEFM24 paper of the same…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsDistributed and Parallel Computing Systems · Parallel Computing and Optimization Techniques
