Tan, Yong Kiam, Myreen, Magnus O., Kumar, Ramana, Fox, Anthony, Owens, Scott, Norrish, Michael (2019) The Verified CakeML Compiler Backend. Journal of Functional Programming, 29 . ISSN 0956-7968. (doi:10.1017/S0956796818000229) (KAR id:71304)
PDF
Author's Accepted Manuscript
Language: English |
|
Download this file (PDF/2MB) |
Preview |
Request a format suitable for use with assistive technology e.g. a screenreader | |
Official URL: https://doi.org/10.1017/S0956796818000229 |
Abstract
The CakeML compiler is, to the best of our knowledge, the most realistic veri?ed compiler for a functional programming language to date. The architecture of the compiler, a sequence of intermediate languages through which high-level features are compiled away incrementally, enables veri?cation of each compilation pass at inappropriate level of semantic detail.Partsofthecompiler’s implementation resemble mainstream (unveri?ed) compilers for strict functional languages, and it support several important features and optimisations. These include ef?cient curried multi-argument functions, con?gurable data representations, ef?cient exceptions, register allocation,and more. The compiler produces machine code for ?ve architectures: x86-64, ARMv6, ARMv8, MIPS-64, and RISC-V. The generatedmachine code contains the veri?edruntime system which includes averi?ed generational copying garbage collect or and averi?edarbitraryprecisionarithmetic(bignum)library. In this paper we present the overall design of the compiler backend, including its 12 intermediate languages. We explain how the semantics and proofs ?t together, and provide detail on how the compiler has been bootstrapped inside the logic of a theorem prover. The entire development has been carried out within the HOL4 theorem prover.
Item Type: | Article |
---|---|
DOI/Identification number: | 10.1017/S0956796818000229 |
Subjects: | Q Science > QA Mathematics (inc Computing science) > QA 76 Software, computer programming, |
Divisions: | Divisions > Division of Computing, Engineering and Mathematical Sciences > School of Computing |
Depositing User: | Scott Owens |
Date Deposited: | 19 Dec 2018 16:20 UTC |
Last Modified: | 09 Dec 2022 00:32 UTC |
Resource URI: | https://kar.kent.ac.uk/id/eprint/71304 (The current URI for this page, for reference purposes) |
- Link to SensusAccess
- Export to:
- RefWorks
- EPrints3 XML
- BibTeX
- CSV
- Depositors only (login required):