Skip to main content

A Functional Derivation of the Warren Abstract Machine

Maciej Pirog and Jeremy Gibbons


Based on Danvy et al.'s functional correspondence, we give a further example of gradual re finement of an interpreter into a known, low-level abstract machine underlying real-world compilers, by deriving an abstract model of the Warren Abstract Machine from a simple resolution-based Prolog interpreter. We show that other well-known functional programming techniques (namely, explicit laziness and semi-persistent data structures) can help to develop abstract machines without detailed examination of the semantics realised by the interpreter.

Submitted for publication