kirancodes.me
To Proof Maintenance & Beyond!

How to Make Destructive Updates Less Destructive

Martin Odersky

Abstract

We present a safe embedding of mutable data structures in functional languages. With safety we mean that confluence and (in some sense) referential transparency are maintained. We develop a static criterion based on abstract interpretation which checks that any side-effect which a function may exert via a destructive update remains invisible. The technique opens up the possibility of designing safe and efficient wide-spectrum languages which combine functional and imperative language constructs.

DOI 10.1145/99583.99590

Related papers