Compiling Gallina to go for the FSCQ file system
Name
1020286380-MIT.pdf
Description
Full printable version
Size
638.01 KB
Format
Adobe PDF
Checksum (MD5)
a6a3862e1c7a7fa75b502f15f88f76f4
Author(s)
Ziegler, Daniel (Daniel M.)
Advisor(s)
Nickolai Zeldovich and M. Frans Kaashoek.
Date Issued
2017
Publisher
Massachusetts Institute of Technology
Abstract
Over the last decade, systems software verification has become increasingly practical. Many verified systems have been written in the language of a proof assistant, proved correct, and then made runnable using code extraction. However, due to the rigidity of extraction and the overhead of the target languages, the resulting code's CPU performance can suffer, with limited opportunity for optimization. This thesis contributes CoqGo, a proof-producing compiler from Coq's Gallina language to Go. We created Go', a stylized semantics of Go which enforce linearity, and implemented proof-producing compilation tactics from Gallina to Go' plus a straightforward translation from Go' to Go. Applying a prototype of CoqGo, we compiled a system call in the FSCQ file system, with minimal changes to FSCQ's source code. Taking advantage of the increased control given by CoqGo, we implemented three optimizations, bringing the system call's CPU performance to 19% faster than the extracted version.
Description
Thesis: M. Eng., Massachusetts Institute of Technology, Department of Electrical Engineering and Computer Science, 2017.
This electronic version was submitted by the student author. The certified thesis is available in the Institute Archives and Special Collections.
Cataloged from student-submitted PDF version of thesis.
Includes bibliographical references (pages 85-87).
Subjects
Electrical Engineering and Computer Science.
MIT Department
Massachusetts Institute of Technology. Department of Electrical Engineering and Computer Science
Terms of Use
MIT theses are protected by copyright. They may be viewed, downloaded, or printed from this source but further reproduction or distribution in any format is prohibited without written permission.
Persistent DSpace Link