Extracting and Optimizing Formally Verified Code for Systems Programming
Author(s)
Ioannidis, Eleftherios; Kaashoek, M. Frans; Zeldovich, Nickolai
DownloadAccepted version (225.5Kb)
Terms of use
Metadata
Show full item recordAbstract
MCQC is a compiler for extracting verified systems programs to low-level assembly, with no runtime or garbage collection requirements and an emphasis on performance. MCQC targets the Gallina functional language used in the Coq proof assistant. MCQC translates pure and recursive functions into C++17, while compiling monadic effectful functions to imperative C++ system calls. With a few memory and performance optimizations, MCQC combines verifiability with memory and runtime performance. By handling effectful and pure functions separately MCQC can generate executable verified code directly from Gallina, reducing the effort of implementing and executing verified systems. Keywords: Formal verification; Functional compiler; Extraction; Systems
Date issued
2019-05Department
Massachusetts Institute of Technology. Department of Electrical Engineering and Computer ScienceJournal
NASA Formal Methods Symposium 2019
Publisher
Springer International Publishing
Citation
Ioannidis, Eleftherios, Frans Kaashoek, and Nickolai Zeldovich. "Extracting and Optimizing Formally Verified Code for Systems Programming." NASA Formal Methods, NFM 2019, edited by Badger J., Rozier K., Springer, Cham, 2019
Version: Author's final manuscript
ISBN
9783030206512
9783030206529
ISSN
0302-9743
1611-3349