z-logo
open-access-imgOpen Access
Graph Types
Author(s) -
Nils Klarlund,
Michael I. Schwartzbach
Publication year - 1992
Publication title -
daimi pb
Language(s) - English
Resource type - Journals
eISSN - 2245-9316
pISSN - 0105-8517
DOI - 10.7146/dpb.v21i421.7952
Subject(s) - computer science , pointer (user interface) , programming language , traverse , theoretical computer science , compile time , compiler , graph , data structure , invariant (physics) , algorithm , mathematics , artificial intelligence , geodesy , geography , mathematical physics
Recursive data structures are abstractions of simple records and pointers. They impose a shape invariant, which is verified at compile-time and exploited to automatically generate code for building, copying, comparing, and traversing values without loss of efficiency. However, such values are always tree shaped, which is a major obstacle to practical use. We propose a notion of graph types , which allow common shapes, such as doubly-linked lists or threaded trees, to be expressed concisely and efficiently. We define regular languages of routing expressions to specify relative addresses of extra pointers in a canonical spanning tree. An efficient algorithm for computing such addresses is developed. We employ a second-order monadic logic to decide well-formedness of graph type specifications. This logic can also be used for automated reasoning about pointer structures.

The content you want is available to Zendy users.

Already have an account? Click here to sign in.
Having issues? You can contact us here