Objects as closures: abstract semantics of object-oriented languages
LFP '88 Proceedings of the 1988 ACM conference on LISP and functional programming
Inheritance in smalltalk-80: a denotational definition
POPL '88 Proceedings of the 15th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
The existence of refinement mappings
Theoretical Computer Science
Proving correctness with respect to nondeterministic safety specifications
Information Processing Letters
A denotational semantics of inheritance and its correctness
Information and Computation
Modular reasoning in the presence of subclassing
Proceedings of the tenth annual conference on Object-oriented programming systems, languages, and applications
An introduction to object-oriented programming (2nd ed.)
An introduction to object-oriented programming (2nd ed.)
Specifying and using a partitionable group communication service
PODC '97 Proceedings of the sixteenth annual ACM symposium on Principles of distributed computing
A dynamic view-oriented group communication service
PODC '98 Proceedings of the seventeenth annual ACM symposium on Principles of distributed computing
Eventually-serializable data services
Theoretical Computer Science
Using I/O automata for developing distributed systems
Foundations of component-based systems
Distributed Algorithms
A Theory of Objects
Data Refinement: Model-Oriented Proof Methods and Their Comparison
Data Refinement: Model-Oriented Proof Methods and Their Comparison
Wrapper Semantics of an Object-Oriented Programming Language with State
TACS '91 Proceedings of the International Conference on Theoretical Aspects of Computer Software
Multicast Group Communication as a Base for a Load-Balancing Replicated Data Service
DISC '98 Proceedings of the 12th International Symposium on Distributed Computing
On the Need for Practical Formal Methods
FTRTFT '98 Proceedings of the 5th International Symposium on Formal Techniques in Real-Time and Fault-Tolerant Systems
Robust emulation of shared memory using dynamic quorum-acknowledged broadcasts
FTCS '97 Proceedings of the 27th International Symposium on Fault-Tolerant Computing (FTCS '97)
Fast Replicated State Machines Over Partitionable Networks
SRDS '97 Proceedings of the 16th Symposium on Reliable Distributed Systems
Formal Methods For Developing High Assurance Computer Systems: Working Group Report
WIFT '98 Proceedings of the Second IEEE Workshop on Industrial Strength Formal Specification Techniques
A Client-Server Approach to Virtually Synchronous Group Multicast: Specifications and Algorithms
ICDCS '00 Proceedings of the The 20th International Conference on Distributed Computing Systems ( ICDCS 2000)
Optimizing Layered Communication Protocols
Optimizing Layered Communication Protocols
Fault Tolerant Video on Demand Services
ICDCS '99 Proceedings of the 19th IEEE International Conference on Distributed Computing Systems
A Client-Server Oriented Algorithm for Virtually Synchronous Group Membership in WANs
A Client-Server Oriented Algorithm for Virtually Synchronous Group Membership in WANs
An inheritance-based technique for building simulation proofs incrementally
ACM Transactions on Software Engineering and Methodology (TOSEM)
An analyzable annotation language
OOPSLA '02 Proceedings of the 17th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
VAlloy - Virtual Functions Meet a Relational Language
FME '02 Proceedings of the International Symposium of Formal Methods Europe on Formal Methods - Getting IT Right
Hi-index | 0.01 |
This paper presents a technique for incrementally constructing safety specifications, abstract algorithm descriptions, and simulation proofs showing that algorithms meet their specifications.The technique for building specifications (and algorithms) allows a child specification (or algorithm) to inherit from its parent by two forms of incremental modification: (a) interface extension, where new forms of interaction are added to the parent's interface, and (b) specialization (subtyping), where new data, restrictions, and effects are added to the parent's behavior description. The combination of interface extension and specialization constitutes a powerful and expressive incremental modification mechanism for describing changes that do not override the behavior of the parent, although it may introduce new behavior.Consider the case when incremental modification is applied to both a parent specification S and a parent algorithm A. A proof that the child algorithm A′ implements the child specification S′ can be built incrementally upon simulation proof that algorithm A implements specification S. The new work required involves reasoning about the modifications, but does not require repetition of the reasoning in the original simulation proof.The paper presents the technique mathematically, in terms of automata. The technique has already been used to model and validate a full-fledged group communication system (see [26]); the methodology and results of that experiment are summarized in this paper.