Miranda: a non-strict functional language with polymorphic types
Proc. of a conference on Functional programming languages and computer architecture
Login: A logic programming language with built-in inheritance
Journal of Logic Programming
The definition of Standard ML
The monadic second-order logic of graphs. I. recognizable sets of finite graphs
Information and Computation
PLDI '92 Proceedings of the ACM SIGPLAN 1992 conference on Programming language design and implementation
POPL '86 Proceedings of the 13th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
A general data dependence test for dynamic, pointer-based data structures
PLDI '94 Proceedings of the ACM SIGPLAN 1994 conference on Programming language design and implementation
Semantic models and abstract interpretation techniques for inductive data structures and pointers
PEPM '95 Proceedings of the 1995 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Is it a tree, a DAG, or a cyclic graph? A shape analysis for heap-directed pointers in C
POPL '96 Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Automatic verification of pointer programs using monadic second-order logic
Proceedings of the ACM SIGPLAN 1997 conference on Programming language design and implementation
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Proceedings of the ACM SIGPLAN 1999 conference on Programming language design and implementation
The pointer assertion logic engine
Proceedings of the ACM SIGPLAN 2001 conference on Programming language design and implementation
POPL '02 Proceedings of the 29th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Ownership types for object encapsulation
POPL '03 Proceedings of the 30th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A Decidable Logic for Describing Linked Data Structures
ESOP '99 Proceedings of the 8th European Symposium on Programming Languages and Systems
Compile-Time Debugging of C Programs Working on Trees
ESOP '00 Proceedings of the 9th European Symposium on Programming Languages and Systems
Dependency Analysis of Recursive Data Structures Using Automatic Groups
LCPC '98 Proceedings of the 11th International Workshop on Languages and Compilers for Parallel Computing
Safe Approximation of Data Dependencies in Pointer-Based Structures
LCPC '00 Proceedings of the 13th International Workshop on Languages and Compilers for Parallel Computing-Revised Papers
Storeless semantics and alias logic
Proceedings of the 2003 ACM SIGPLAN workshop on Partial evaluation and semantics-based program manipulation
Generalized typestate checking using set interfaces and pluggable analyses
ACM SIGPLAN Notices
Abstraction and control for shapely nested graph transformation
Fundamenta Informaticae - Special issue on the first international conference on graph transformation (ICGT 2002)
A language-based approach to functionally correct imperative programming
Proceedings of the tenth ACM SIGPLAN international conference on Functional programming
Verifying properties of well-founded linked lists
Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Logical characterizations of heap abstractions
ACM Transactions on Computational Logic (TOCL)
Flow-insensitive type qualifiers
ACM Transactions on Programming Languages and Systems (TOPLAS)
Static validation of XSL transformations
ACM Transactions on Programming Languages and Systems (TOPLAS)
Modeling and Verifying Graph Transformations in Proof Assistants
Electronic Notes in Theoretical Computer Science (ENTCS)
Model Checking Dynamic Memory Allocation in Operating Systems
Journal of Automated Reasoning
Abstract Regular Tree Model Checking
Electronic Notes in Theoretical Computer Science (ENTCS)
Extending C for Checking Shape Safety
Electronic Notes in Theoretical Computer Science (ENTCS)
Finite differencing of logical formulas for static analysis
ACM Transactions on Programming Languages and Systems (TOPLAS)
A temporal approach to specification and verification of pointer data-structures
FASE'03 Proceedings of the 6th international conference on Fundamental approaches to software engineering
Shape analysis of single-parent heaps
VMCAI'07 Proceedings of the 8th international conference on Verification, model checking, and abstract interpretation
Refinement-based verification for possibly-cyclic lists
Program analysis and compilation, theory and practice
PLDI '10 Proceedings of the 2010 ACM SIGPLAN conference on Programming language design and implementation
An overview of the Jahob analysis system: project goals and current status
IPDPS'06 Proceedings of the 20th international conference on Parallel and distributed processing
Decidable logics combining heap structures and data
Proceedings of the 38th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
APLAS'10 Proceedings of the 8th Asian conference on Programming languages and systems
Attribute Grammars as Recursion Schemes over Cyclic Representations of Zippers
Electronic Notes in Theoretical Computer Science (ENTCS)
Proceedings of the 32nd ACM SIGPLAN conference on Programming language design and implementation
Synthesis for regular specifications over unbounded domains
Proceedings of the 2010 Conference on Formal Methods in Computer-Aided Design
Efficient decision procedures for heaps using STRAND
SAS'11 Proceedings of the 18th international conference on Static analysis
Abstract regular tree model checking of complex dynamic data structures
SAS'06 Proceedings of the 13th international conference on Static Analysis
Beyond iteration vectors: instancewise relational abstract domains
SAS'06 Proceedings of the 13th international conference on Static Analysis
A logic of reachable patterns in linked data-structures
FOSSACS'06 Proceedings of the 9th European joint conference on Foundations of Software Science and Computation Structures
Automatic verification of pointer programs using grammar-based shape analysis
ESOP'05 Proceedings of the 14th European conference on Programming Languages and Systems
VMCAI'06 Proceedings of the 7th international conference on Verification, Model Checking, and Abstract Interpretation
A logic and decision procedure for predicate abstraction of heap-manipulating programs
VMCAI'06 Proceedings of the 7th international conference on Verification, Model Checking, and Abstract Interpretation
Data structure specifications via local equality axioms
CAV'05 Proceedings of the 17th international conference on Computer Aided Verification
Bounded model checking of pointer programs
CSL'05 Proceedings of the 19th international conference on Computer Science Logic
SAS'05 Proceedings of the 12th international conference on Static Analysis
Verification of multi-linked heaps
Journal of Computer and System Sciences
Science of Computer Programming
Abstraction and Control for Shapely Nested Graph Transformation
Fundamenta Informaticae - The First International Conference on Graph Transformation (ICGT 2002)
Verification of complex dynamic data tree with mu-calculus
Automated Software Engineering
Hi-index | 0.00 |
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.