Minuska: Towards a Formally Verified Programming Language Framework

Fuente: arXiv
Saved in:
Bibliographic Details
Main Authors: Tušil, Jan, Obdržálek, Jan
Format: Preprint
Published: 2024
Subjects:
Online Access:
Tags: Add Tag
No Tags, Be the first to tag this record!
_version_ 1866913505611874304
author Tušil, Jan
Obdržálek, Jan
author_facet Tušil, Jan
Obdržálek, Jan
contents 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 name.
format Preprint
id arxiv_https___arxiv_org_abs_2409_11530
institution arXiv
publishDate 2024
record_format arxiv
spellingShingle Minuska: Towards a Formally Verified Programming Language Framework
Tušil, Jan
Obdržálek, Jan
Programming Languages
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 name.
title Minuska: Towards a Formally Verified Programming Language Framework
topic Programming Languages
url https://arxiv.org/abs/2409.11530