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
Calculating with pointer structures
Proceedings of the IFIP TC 2 WG 2.1 international workshop on Algorithmic languages and calculi
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
A Theory of Programming Language Semantics
A Theory of Programming Language Semantics
Separation Logic: A Logic for Shared Mutable Data Structures
LICS '02 Proceedings of the 17th Annual IEEE Symposium on Logic in Computer Science
Local Reasoning about Programs that Alter Data Structures
CSL '01 Proceedings of the 15th International Workshop on Computer Science Logic
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
Pointers and records in the unifying theories of programming
UTP'06 Proceedings of the First international conference on Unifying Theories of Programming
rCOS: refinement of component and object systems
FMCO'04 Proceedings of the Third international conference on Formal Methods for Components and Objects
Compositional reasoning for pointer structures
MPC'06 Proceedings of the 8th international conference on Mathematics of Program Construction
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
The miracle of reactive programming
UTP'08 Proceedings of the 2nd international conference on Unifying theories of programming
Specification coverage for testing in circus
UTP'10 Proceedings of the Third international conference on Unifying theories of programming
The safety-critical Java memory model: a formal account
FM'11 Proceedings of the 17th international conference on Formal methods
Safety-critical Java in Circus
Proceedings of the 9th International Workshop on Java Technologies for Real-Time and Embedded Systems
The safety-critical java mission model: a formal account
ICFEM'11 Proceedings of the 13th international conference on Formal methods and software engineering
Science of Computer Programming
Safety-critical Java programs from Circus models
Real-Time Systems
Hi-index | 0.00 |
Hoare and He's unifying theories of programming (UTP) provide a collection of relational models that can be used to study and compare several programming paradigms. In this paper, we add to the UTP a theory of pointers and records that provides a model for objects and sharing in languages like Java and C++. Our work is based on the hierarchical addressing scheme used to refer to record fields (or object attributes) in conventional languages, rather than explicit notions of location. More importantly, we support reasoning about the structure and sharing of data, as well as their, possibly infinite, values. We also provide a general account of UTP theories characterised by conjunctive healthiness conditions, of which our theory is an example.