Typestate: A programming language concept for enhancing software reliability
IEEE Transactions on Software Engineering
Making data structures persistent
Journal of Computer and System Sciences - 18th Annual ACM Symposium on Theory of Computing (STOC), May 28-30, 1986
Iterator specification with typestates
Proceedings of the 2006 conference on Specification and verification of component-based systems
Checking interference with fractional permissions
SAS'03 Proceedings of the 10th international conference on Static analysis
Dafny: an automatic program verifier for functional correctness
LPAR'10 Proceedings of the 16th international conference on Logic for programming, artificial intelligence, and reasoning
An empirical study of object protocols in the wild
Proceedings of the 25th European conference on Object-oriented programming
First-class state change in plaid
Proceedings of the 2011 ACM international conference on Object oriented programming systems languages and applications
Proceedings of the 10th SIGPLAN symposium on New ideas, new paradigms, and reflections on programming and software
Formalized verification of snapshotable trees: separation and sharing
VSTTE'12 Proceedings of the 4th international conference on Verified Software: theories, tools, experiments
Hi-index | 0.00 |
We use access permissions and typestate to specify and verify a Java library that implements snapshotable search trees, as well as some client code. We formalize our approach in the Plural tool, a sound modular typestate checking tool. We describe the challenges to verifying snapshotable trees in Plural, give an abstract interface specification against which we verify the client code, provide a concrete specification for an implementation and describe proof patterns we found. We also relate this verification approach to other techniques used to verify this data structure.