Summary: Datatypes in Memory
and Piotr Hoffman2
LFCS, School of Informatics, University of Edinburgh, U.K.
Institute of Informatics, Warsaw University, Poland
Abstract. Besides functional correctness, specifications must describe
other properties of permissible implementations. We want to use sim-
ple algebraic techniques to specify resource usage alongside functional
behaviour. In this paper we examine the space behaviour of datatypes,
which depends on the representation of values in memory. In particu-
lar, it varies according to how much values are allowed to overlap, and
how much they must be kept apart to ensure correctness for destructive
We introduce a mechanism for specifying datatypes represented in a
memory, with operations that may be destructive to varying degrees.
We start from an abstract model notion for data-in-memory and then
show how to specify the observable behaviour of models. The method
is demonstrated by specifications of lists-in-memory and pointers; with