Communicating sequential processes
Communicating sequential processes
A fully abstract semantics and a proof system for an ALGOL-like language with sharing
Proceedings of the international conference on Mathematical foundations of programming semantics
Eiffel: the language
Using Z: specification, refinement, and proof
Using Z: specification, refinement, and proof
BI as an assertion language for mutable data structures
POPL '01 Proceedings of the 28th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Predicate transformer semantics of a higher-order imperative language with record subtyping
Science of Computer Programming
The Theory and Practice of Concurrency
The Theory and Practice of Concurrency
A trace model for pointers and objects
Programming methodology
Reasoning about Pointers in Refinement Calculus
APSEC '03 Proceedings of the Tenth Asia-Pacific Software Engineering Conference Software Engineering Conference
ERC – An object-oriented refinement calculus for Eiffel
Formal Aspects of Computing
Towards practical proofs of class correctness
ZB'03 Proceedings of the 3rd international conference on Formal specification and development in Z and B
UTP'06 Proceedings of the First international conference on Unifying Theories of Programming
A Theory of Pointers for the UTP
Proceedings of the 5th international colloquium on Theoretical Aspects of Computing
IFM'07 Proceedings of the 6th international conference on Integrated formal methods
UTP and temporal logic model checking
UTP'08 Proceedings of the 2nd international conference on Unifying theories of programming
Unifying theories of locations
UTP'08 Proceedings of the 2nd international conference on Unifying theories of programming
Hi-index | 0.00 |
We present a theory of pointers and records that provides a representation for objects and sharing in languages like Java and C++. Our approach to pointers is based on Paige’s entity groups, which give an abstract view of storage as equivalence classes of variables that share the same memory location. We first define our theory as a restriction of the general theory of relations, and, as a consequence, it does not distinguish between terminating and non-terminating programs. Therefore, we link it with the theory of designs, providing a foundation for reasoning about total correctness of pointer-based sequential programs. Our work is a step towards the semantics of an object-oriented language that also integrates constructs for specifying state-rich and concurrent systems.