The design of the Venus operating system
Communications of the ACM
A technique for software module specification with examples
Communications of the ACM
On the criteria to be used in decomposing systems into modules
Communications of the ACM
Inductive methods for proving properties of programs
Communications of the ACM
Communications of the ACM
Toward an understanding of data structures
Communications of the ACM
The structure of the “THE”-multiprogramming system
Communications of the ACM
An axiomatic basis for computer programming
Communications of the ACM
POPL '75 Proceedings of the 2nd ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Towards more flexible type systems
Programming Symposium, Proceedings Colloque sur la Programmation
Toward a Methodology for Designing Large Systems and Verifying Their Properties
GI - 4. Jahrestagung
Programming with abstract data types
Proceedings of the ACM SIGPLAN symposium on Very high level languages
IEEE Transactions on Software Engineering
Communications of the ACM
Synthesizing abstract data type specifications
ACM-SE 20 Proceedings of the 20th annual Southeast regional conference
Specification and implementation of parallel activities on abstract objects
ICSE '79 Proceedings of the 4th international conference on Software engineering
Language extensibility and program design
DAC '76 Proceedings of the 13th Design Automation Conference
SIGSOFT tutorial on program verification (Tutorial Session)
ACM '76 Proceedings of the 1976 annual conference
The use of abstract data types to simplify program modifications
Proceedings of the 1976 conference on Data : Abstraction, definition and structure
On the modelling, analysis and design of protocols - a special class of software structures
ICSE '76 Proceedings of the 2nd international conference on Software engineering
A system for automatic software evaluation
ICSE '76 Proceedings of the 2nd international conference on Software engineering
Nesting in Ada programs is for the birds
SIGPLAN '80 Proceedings of the ACM-SIGPLAN symposium on Ada programming language
Data types and program correctness
ACM SIGPLAN Notices - Special issue on programming language design
Programming Languages The First 25 Years
IEEE Transactions on Computers
Data types and program correctness
AFIPS '75 Proceedings of the May 19-22, 1975, national computer conference and exposition
The axioms strike back: testing with concepts and axioms in C++
GPCE '09 Proceedings of the eighth international conference on Generative programming and component engineering
Web applications: spaghetti code for the 21st century
Web applications: spaghetti code for the 21st century
A property based specification formalism classification
Journal of Systems and Software
Simplified integration of Prolog with RDBMS
ACM SIGMIS Database
Consistency models for replicated data
Replication
Data structures and program correctness: Bridging the gap
Computer Languages
Representation and manipulation of information systems: A simplified approach
Journal of Systems and Software
Hi-index | 0.02 |
The main purposes in writing this paper are to discuss the importance of formal specifications and to survey a number of promising specification techniques. The role of formal specifications both in proofs of program correctness, and in programming methodologies leading to programs which are correct by construction, is explained. Some criteria are established for evaluating the practical potential of specification techniques. The importance of providing specifications at the right level of abstraction is discussed, and a particularly interesting class of specification techniques, those used to construct specifications of data abstractions, is identified. A number of specification techniques for describing data abstractions are surveyed and evaluated with respect to the criteria. Finally, directions for future research are indicated.