Smalltalk-80: the language and its implementation
Smalltalk-80: the language and its implementation
Communicating sequential processes
Communicating sequential processes
A semantics of multiple inheritance
Information and Computation - Semantics of Data Types
Science of Computer Programming
Two semantic models of object-oriented languages
Theoretical aspects of object-oriented programming
A denotational semantics of inheritance and its correctness
Information and Computation
Object-oriented software construction (2nd ed.)
Object-oriented software construction (2nd ed.)
Calculating with pointer structures
Proceedings of the IFIP TC 2 WG 2.1 international workshop on Algorithmic languages and calculi
Analysis of pointer “rotation”
Communications of the ACM
Correspondence between ALGOL 60 and Church's Lambda-notation: part I
Communications of the ACM
SIMULA: an ALGOL-based simulation language
Communications of the ACM
Communication and Concurrency
A Theory of Objects
Verifying reachability invariants of linked structures
POPL '83 Proceedings of the 10th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
MPC '95 Mathematics of Program Construction
Local Reasoning about Programs that Alter Data Structures
CSL '01 Proceedings of the 15th International Workshop on Computer Science Logic
A Graph-Based Operational Semantics of OO Programs
ICFEM '09 Proceedings of the 11th International Conference on Formal Engineering Methods: Formal Methods and Software Engineering
Abstraction of object graphs in program verification
MPC'10 Proceedings of the 10th international conference on Mathematics of program construction
Unifying theories of locations
UTP'08 Proceedings of the 2nd international conference on Unifying theories of programming
Reasoning about assignments in recursive data structures
SBMF'10 Proceedings of the 13th Brazilian conference on Formal methods: foundations and applications
BI as an assertion language for mutable data structures
ACM SIGPLAN Notices
Compositional reasoning for pointer structures
MPC'06 Proceedings of the 8th international conference on Mathematics of Program Construction
A separation logic for OO programs
FACS'10 Proceedings of the 7th international conference on Formal Aspects of Component Software
Science of Computer Programming
A graph-based generic type system for object-oriented programs
Frontiers of Computer Science: Selected Publications from Chinese Universities
Graph-based object-oriented hoare logic
Theories of Programming and Formal Methods
Hi-index | 0.01 |
Object-oriented programs [Dahl, Goldberg, Meyer] are notoriously prone to the following kinds of error, which could lead to increasingly severe problems in the presence of tasking 1. Following a null pointer 2. Deletion of an accessible object 3. Failure to delete an inaccessible object 4. Interference due to equality of pointers 5. Inhibition of optimisation due to fear of (4) Type disciplines and object classes are a great help in avoiding these errors. Stronger protection may be obtainable with the help of assertions, particularly invariants, which are intended to be true before and after each call of a method that updates the structure of the heap. This note introduces a mathematical model and language for the formulation of assertions about objects and pointers, and suggests that a graphical calculus [Curtis, Lowe] may help in reasoning about program correctness. It deals with both garbage-collected heaps and the other kind. The theory is based on a trace model of graphs, using ideas from process algebra; and our development seeks to exploit this analogy as a unifying principle.