Towards a practical specification language

Recognition of the value of formal specifications in the design and verification of large software systems is becoming more widespread. Specification languages themselves, however, are difficult to develop in part because of the inherent conflict between the goals of clarity and formalism required by these languages. This paper discusses the role of specification languages, examples of specifications in two currently implemented languages, AFFIRM and SPECIAL, and makes some suggestions towards a more practical specification language.

[1]  Ben Wegbreit,et al.  Verifying Program Performance , 1976, JACM.

[2]  John V. Guttag,et al.  Abstract data types and the development of data structures , 1976, Software Pioneers.

[3]  D. L. Parnas,et al.  On the criteria to be used in decomposing systems into modules , 1972, Software Pioneers.

[4]  T. W. Parnaby Paul R. Halmos, Naive Set Theory (Van Nostrand, Princeton, 1960), 26s. 6d. , 1961 .

[5]  Niklaus Wirth,et al.  Program development by stepwise refinement , 1971, CACM.

[6]  Lawrence Robinson,et al.  The SRI International Hierarchical Development Handbook. Volume II. The Languages and Tools of HDM. , 1979 .

[7]  Barbara Liskov,et al.  Practical benefits of research in programming methodology (Abstract of presentation) , 1978, AFIPS National Computer Conference.

[8]  Ellis Horowitz,et al.  Abstract data types and software validation , 1978, CACM.

[9]  David R. Musser,et al.  Abstract Data Type Specification in the Affirm System , 1980, IEEE Transactions on Software Engineering.

[10]  David Lorge Parnas,et al.  A technique for software module specification with examples , 1972, CACM.

[11]  Stephen N. Zilles,et al.  Introduction to Data Algebra , 1979, Abstract Software Specifications.

[12]  Joseph E. Stoy,et al.  Denotational Semantics: The Scott-Strachey Approach to Programming Language Theory , 1981 .

[13]  Edward Yourdon,et al.  Techniques of Program Structure and Design , 1976 .

[14]  James J. Horning,et al.  Formal specification as a design tool , 1980, POPL '80.

[15]  David R. Musser,et al.  An Overview of AFFIRM: A Specification and Verification System , 1980, IFIP Congress.

[16]  Edsger W. Dijkstra,et al.  Notes on structured programming , 1970 .

[17]  V. A. Berzins,et al.  Abstract model specifications for data abstractions , 1979 .