A verified generational garbage collector for CakeML
Paper i proceeding, 2017

This paper presents the verification of a generational copying garbage collector for the CakeML runtime system. The proof is split into an algorithm proof and an implementation proof. The algorithm proof follows the structure of the informal intuition for the generational collector’s correctness, namely, a partial collection cycle in a generational collector is the same as running a full collection on part of the heap, if one views pointers to old data as non-pointers. We present a pragmatic way of dealing with ML-style mutable state, such as references and arrays, in the proofs. The development has been fully integrated into the in-logic bootstrapped CakeML compiler, which now includes command-line arguments that allow configuration of the generational collector. All proofs were carried out in the HOL4 theorem prover.

Författare

Adam Sandberg Eriksson

Funktionell programmering

Magnus Myreen

Chalmers, Data- och informationsteknik, Formella metoder

Johannes Åman Pohjala

Chalmers, Data- och informationsteknik, Formella metoder

Formella metoder

Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)

03029743 (ISSN) 16113349 (eISSN)

Vol. 10499 LNCS 444-461

Ämneskategorier

Data- och informationsvetenskap

DOI

10.1007/978-3-319-66107-0_28

Mer information

Senast uppdaterat

2019-09-20