Extracting and Optimizing Formally Verified Code for Systems Programming

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,...

Full description

Bibliographic Details
Main Authors: Ioannidis, Eleftherios, Kaashoek, M. Frans, Zeldovich, Nickolai
Other Authors: Massachusetts Institute of Technology. Department of Electrical Engineering and Computer Science
Format: Book
Language:English
Published: Springer International Publishing 2020
Online Access:https://hdl.handle.net/1721.1/125251
_version_ 1811069818979221504
author Ioannidis, Eleftherios
Kaashoek, M. Frans
Zeldovich, Nickolai
author2 Massachusetts Institute of Technology. Department of Electrical Engineering and Computer Science
author_facet Massachusetts Institute of Technology. Department of Electrical Engineering and Computer Science
Ioannidis, Eleftherios
Kaashoek, M. Frans
Zeldovich, Nickolai
author_sort Ioannidis, Eleftherios
collection MIT
description 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
first_indexed 2024-09-23T08:16:44Z
format Book
id mit-1721.1/125251
institution Massachusetts Institute of Technology
language English
last_indexed 2024-09-23T08:16:44Z
publishDate 2020
publisher Springer International Publishing
record_format dspace
spelling mit-1721.1/1252512022-09-23T12:05:30Z Extracting and Optimizing Formally Verified Code for Systems Programming Ioannidis, Eleftherios Kaashoek, M. Frans Zeldovich, Nickolai Massachusetts Institute of Technology. Department of Electrical Engineering and Computer Science 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 2020-05-14T19:59:57Z 2020-05-14T19:59:57Z 2019-05 2019-07-08T17:28:09Z Book http://purl.org/eprint/type/ConferencePaper 9783030206512 9783030206529 0302-9743 1611-3349 https://hdl.handle.net/1721.1/125251 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 en http://dx.doi.org/10.1007/978-3-030-20652-9_15 NASA Formal Methods Symposium 2019 Creative Commons Attribution-Noncommercial-Share Alike http://creativecommons.org/licenses/by-nc-sa/4.0/ application/pdf Springer International Publishing MIT web domain
spellingShingle Ioannidis, Eleftherios
Kaashoek, M. Frans
Zeldovich, Nickolai
Extracting and Optimizing Formally Verified Code for Systems Programming
title Extracting and Optimizing Formally Verified Code for Systems Programming
title_full Extracting and Optimizing Formally Verified Code for Systems Programming
title_fullStr Extracting and Optimizing Formally Verified Code for Systems Programming
title_full_unstemmed Extracting and Optimizing Formally Verified Code for Systems Programming
title_short Extracting and Optimizing Formally Verified Code for Systems Programming
title_sort extracting and optimizing formally verified code for systems programming
url https://hdl.handle.net/1721.1/125251
work_keys_str_mv AT ioannidiseleftherios extractingandoptimizingformallyverifiedcodeforsystemsprogramming
AT kaashoekmfrans extractingandoptimizingformallyverifiedcodeforsystemsprogramming
AT zeldovichnickolai extractingandoptimizingformallyverifiedcodeforsystemsprogramming