Extracting and Optimizing Formally Verified Code for Systems Programming
Name
ioannidis-mcqc.pdf
Description
Accepted version
Size
225.53 KB
Format
Adobe PDF
Checksum (MD5)
7ecddd74f55635103b358f38ad716800
Author(s) • •
Ioannidis, Eleftherios
Kaashoek, M. Frans
Zeldovich, Nickolai
Date Issued
May 2019
Journal
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
Abstract
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
MIT Department
Massachusetts Institute of Technology. Department of Electrical Engineering and Computer Science
Terms of Use
Creative Commons Attribution-Noncommercial-Share Alike
Persistent DSpace Link
DOI of Published Version
https://doi.org/10.1007/978-3-030-20652-9_15