A sharp proof rule for procedures in wp semantics
Acta Informatica
A behavioral notion of subtyping
ACM Transactions on Programming Languages and Systems (TOPLAS)
Data groups: specifying the modification of extended state
Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
A Proof System for Communicating Sequential Processes
ACM Transactions on Programming Languages and Systems (TOPLAS)
Ten Years of Hoare's Logic: A Survey—Part I
ACM Transactions on Programming Languages and Systems (TOPLAS)
An axiomatic basis for computer programming
Communications of the ACM
Calculating sharp adaptation rules
Information Processing Letters - Special issue in honor of Edsger W. Dijkstra
Extended static checking for Java
PLDI '02 Proceedings of the ACM SIGPLAN 2002 Conference on Programming language design and implementation
Java Language Specification, Second Edition: The Java Series
Java Language Specification, Second Edition: The Java Series
Separation Logic: A Logic for Shared Mutable Data Structures
LICS '02 Proceedings of the 17th Annual IEEE Symposium on Logic in Computer Science
The LOOP Compiler for Java and JML
TACAS 2001 Proceedings of the 7th International Conference on Tools and Algorithms for the Construction and Analysis of Systems
Modular Completeness: Integrating the Reuse of Specified Software in Top-down Program Development
FME '96 Proceedings of the Third International Symposium of Formal Methods Europe on Industrial Benefit and Advances in Formal Methods
Separation and information hiding
Proceedings of the 31st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Towards Imperative Modules: Reasoning about Invariants and Sharing of Mutable State
LICS '04 Proceedings of the 19th Annual IEEE Symposium on Logic in Computer Science
The spec# programming system: an overview
CASSIS'04 Proceedings of the 2004 international conference on Construction and Analysis of Safe, Secure, and Interoperable Smart Devices
ESC/Java2: uniting ESC/Java and JML
CASSIS'04 Proceedings of the 2004 international conference on Construction and Analysis of Safe, Secure, and Interoperable Smart Devices
Towards imperative modules: reasoning about invariants and sharing of mutable state
Theoretical Computer Science - Components and objects
FM '08 Proceedings of the 15th international symposium on Formal Methods
Regional Logic for Local Reasoning about Global Invariants
ECOOP '08 Proceedings of the 22nd European conference on Object-Oriented Programming
Incremental Reasoning for Multiple Inheritance
IFM '09 Proceedings of the 7th International Conference on Integrated Formal Methods
Frame rule for mutually recursive procedures manipulating pointers
Theoretical Computer Science
Incremental reasoning with lazy behavioral subtyping for multiple inheritance
Science of Computer Programming
WP semantics and behavioral subtyping
ICTAC'11 Proceedings of the 8th international conference on Theoretical aspects of computing
Assertion-based encapsulation, object invariants and simulations
FMCO'04 Proceedings of the Third international conference on Formal Methods for Components and Objects
Verification of object-oriented programs: A transformational approach
Journal of Computer and System Sciences
Tracking behavioral constraints during object-oriented software evolution
ISoLA'12 Proceedings of the 5th international conference on Leveraging Applications of Formal Methods, Verification and Validation: technologies for mastering change - Volume Part I
Local Reasoning for Global Invariants, Part II: Dynamic Boundaries
Journal of the ACM (JACM)
Local Reasoning for Global Invariants, Part I: Region Logic
Journal of the ACM (JACM)
Hi-index | 0.00 |
This paper describes a proof outline logic that covers most typical object-oriented language constructs in the presence of inheritance and subtyping. The logic is based on a weakest precondition calculus for assignments and object allocation which takes field shadowing into account. Dynamically bound method calls are tackled with a variant of Hoare's rule of adaptation that deals with the dynamic allocation of objects in object-oriented programs. The logic is based on an assertion language that is closely tailored to the abstraction level of the programming language.