The C++ programming language
Synchronization primitives for a multiprocessor: a formal specification
SOSP '87 Proceedings of the eleventh ACM Symposium on Operating systems principles
Distributed logging for transaction processing
SIGMOD '87 Proceedings of the 1987 ACM SIGMOD international conference on Management of data
International Journal of Parallel Programming
Debugging Larch Shared Language Specifications
IEEE Transactions on Software Engineering
Formal Verification of Ada Programs
IEEE Transactions on Software Engineering
POPL '85 Proceedings of the 12th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Time, clocks, and the ordering of events in a distributed system
Communications of the ACM
The notions of consistency and predicate locks in a database system
Communications of the ACM
The Vienna Development Method: The Meta-Language
The Vienna Development Method: The Meta-Language
An Overview of LP, The Larch Power
RTA '89 Proceedings of the 3rd International Conference on Rewriting Techniques and Applications
Notes on Data Base Operating Systems
Operating Systems, An Advanced Course
Distributed Systems - Architecture and Implementation, An Advanced Course
NESTED TRANSACTIONS: AN APPROACH TO RELIABLE DISTRIBUTED COMPUTING
NESTED TRANSACTIONS: AN APPROACH TO RELIABLE DISTRIBUTED COMPUTING
The Larch/Smalltalk interface specification language
ACM Transactions on Software Engineering and Methodology (TOSEM)
Daistish: systematic algebraic testing for OO programs in the presence of side-effects
ISSTA '96 Proceedings of the 1996 ACM SIGSOFT international symposium on Software testing and analysis
An Informal Formal Method for Systematic JUnit Test Case Generation
Proceedings of the Second XP Universe and First Agile Universe Conference on Extreme Programming and Agile Methods - XP/Agile Universe 2002
Contract-Checking Wrappers for C++ Classes
IEEE Transactions on Software Engineering
Hi-index | 0.00 |
A formal specification of three base Avalon/C++ classes - recoverable, atomic, and subatomic - is given. Programmers derive from class recoverable to define persistent objects, and from either class atomic or class subatomic to define atomic objects. The specifications, written in Larch, provide the means for showing that classes derived from the base classes implement objects that are persistent or atomic and thus exemplify the applicability of an existing specification method to specifying nonfunctional properties. Writing these formal specifications for Avalon/C++'s built-in classes has helped to clarify assumptions explicit, and to characterize complex properties of objects.