Writing Larch interface language specifications
ACM Transactions on Programming Languages and Systems (TOPLAS)
A theoretical basis for stepwise refinement and the programming calculus
Science of Computer Programming
A calculus of refinements for program derivations
Acta Informatica
A generalization of Dijkstra's calculus
ACM Transactions on Programming Languages and Systems (TOPLAS)
Formal development programs and proofs
Formal development programs and proofs
ICSE '89 Proceedings of the 11th international conference on Software engineering
Predicate calculus and program semantics
Predicate calculus and program semantics
Systematic software development using VDM (2nd ed.)
Systematic software development using VDM (2nd ed.)
Debugging Larch Shared Language Specifications
IEEE Transactions on Software Engineering
Teaching calculation and discrimination: a more effective curriculum
Communications of the ACM
The Z notation: a reference manual
The Z notation: a reference manual
Combining angels, demons and miracles in program specifications
Theoretical Computer Science
Formal specification and design
Formal specification and design
Larch: languages and tools for formal specification
Larch: languages and tools for formal specification
A logical approach to discrete math
A logical approach to discrete math
Specifications and their use in defining subtypes
OOPSLA '93 Proceedings of the eighth annual conference on Object-oriented programming systems, languages, and applications
Programming from specifications (2nd ed.)
Programming from specifications (2nd ed.)
Interface language for supporting programming styles
IDL '94 Proceedings of the workshop on Interface definition languages
Part I: the RESOLVE framework and discipline: a research synopsis
ACM SIGSOFT Software Engineering Notes
A behavioral notion of subtyping
ACM Transactions on Programming Languages and Systems (TOPLAS)
A Practical Approach to Programming With Assertions
IEEE Transactions on Software Engineering
Partial functions and logics: a warning
Information Processing Letters
Toward reliable modular programs
Toward reliable modular programs
Forcing behavioral subtyping through specification inheritance
Proceedings of the 18th international conference on Software engineering
Using Z: specification, refinement, and proof
Using Z: specification, refinement, and proof
“…And nothing else changes”: the frame problem in procedure specifications
ICSE '93 Proceedings of the 15th international conference on Software Engineering
Object-oriented software construction (2nd ed.)
Object-oriented software construction (2nd ed.)
Modelling systems: practical tools and techniques in software development
Modelling systems: practical tools and techniques in software development
An axiomatic basis for computer programming
Communications of the ACM
A Theory and Practice of Program Development
A Theory and Practice of Program Development
The B Language and Method: A Guide to Practical Formal Development
The B Language and Method: A Guide to Practical Formal Development
Programming with Specifications: An Introduction to Anna, a Language for Specifying ADA Programs
Programming with Specifications: An Introduction to Anna, a Language for Specifying ADA Programs
A Discipline of Programming
Refinement Calculus: A Systematic Introduction
Refinement Calculus: A Systematic Introduction
Object Orientation in Z
TROLL light - The Language and its Development Environment
KORSO - Methods, Languages, and Tools for the Construction of Correct Software
Protective Interface Specifications
TAPSOFT '97 Proceedings of the 7th International Joint Conference CAAP/FASE on Theory and Practice of Software Development
Object Orientation in Z
Identification of and Solutions to Shortcomings of LCL, a Larch/C Interface Specification Language
FME '96 Proceedings of the Third International Symposium of Formal Methods Europe on Industrial Benefit and Advances in Formal Methods
Upgrading the Pre- and Postcondition Technique
VDM '91 Proceedings of the 4th International Symposium of VDM Europe on Formal Software Development-Volume I: Conference Contributions - Volume I
Formal Specification Techniques for Promoting Software Modularity, Enhancing Documentation, and Testing Specifications
A TWO-TIERED APPROACH TO SPECIFYING PROGRAMS
A TWO-TIERED APPROACH TO SPECIFYING PROGRAMS
On the language design and semantic foundation of lcl, a larch/c interface specification language
On the language design and semantic foundation of lcl, a larch/c interface specification language
An Overview of Anna, a Specification Language for Ada
IEEE Software
A Simple and Practical Approach to Unit Testing: The JML and JUnit Way
ECOOP '02 Proceedings of the 16th European Conference on Object-Oriented Programming
The future of library specification
Proceedings of the FSE/SDP workshop on Future of software engineering research
The essence of monotonic state
Proceedings of the 7th ACM SIGPLAN workshop on Types in language design and implementation
Structured specifications for better verification of heap-manipulating programs
FM'11 Proceedings of the 17th international conference on Formal methods
JML’s rich, inherited specifications for behavioral subtypes
ICFEM'06 Proceedings of the 8th international conference on Formal Methods and Software Engineering
Embedded Systems Design
An observationally complete program logic for imperative higher-order functions
Theoretical Computer Science
Hi-index | 0.00 |
We describe enhancements to the pre- and postcondition technique that help specifications convey information more effectively. Some enhancements allow one to specify redundant information that can be used in "debugging" specifications. For instance, adding examples to a specification gives redundant information that may aid some readers, and can also be used to help ensure that the specification says what is intended. Other enhancements allow improvements in frame axioms for object-oriented (OO) procedures, better treatments of exceptions and inheritance, and improved support for incompletely-specified types. Many of these enhancements were invented by other authors, but are not widely known. They have all been integrated into Larch/C++, a Larch-style behavioral interface specification language for C++. However, such enhancements could also be used to make other specification languages more effective tools for communication.