Publication | Closed Access
Graph types
140
Citations
6
References
1993
Year
Unknown Venue
Programming Language TheoryEngineeringGeneric ProgrammingAutomated ReasoningProgram AnalysisDependently Typed ProgrammingComputer EngineeringFormal MethodsComputer ArchitectureShape InvariantComputer ScienceType SystemGraph TypesSoftware AnalysisRecursive Data StructuresFormal Verification
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.
| Year | Citations | |
|---|---|---|
Page 1
Page 1