Adam Bakewell

Learn More
Graph-reduction specifications (GRSs) are a powerful new method for specifying classes of pointer data structures (shapes). They cover important shapes, like various forms of balanced trees, that cannot be handled by existing methods. This report formally defines GRSs as graph-reduction systems with a signature restriction and an accepting graph. We are(More)
This paper presents a semantic framework for data abstraction and refinement for verifying safety properties of open programs with integer types. The presentation is focused on an Algol-like programming language that incorporates data abstraction in its type system. We use a fully abstract game semantics in the style of Hyland and Ong and a more intensional(More)
We present a new algorithm for checking the shape-safety of pointer manipulation programs. In our model, an abstract, data-less pointer structure is a graph. A shape is a language of graphs. A pointer manipulation program is modelled abstractly as a set of graph rewrite rules over such graphs where each rule corresponds to a pointer manipulation step. Each(More)
We describe a software tool for specifying operational semantics as a term-graph reduction system. The semantics are guaranteed to accurately model the asymptotic space and time usage of an implementation yet are abstract enough to support reasoning at the program level. Term graphs make explicit all the aspects of reduction relating to space usage as they(More)