What is a specification language ?

data types: Z, VDM, Larch. Z, a formal method based on set theory, can be used in both model-oriented and property-oriented styles. Figure 4 gives a modeloriented specification of a symbol table, following the Z notation of Spivey.h The state of the table is modeled by a partial mapping from keys to values (X -H Y denotes a set of partial mappings from set X to set Y; a partial mapping relates each member of X to at most one member of Y). By convention, unprimed variables in Z stand for the state before an operation is performed and primed variables for the state afterwards. I will use the same convention in the VDM and Larch specifications. The table contains four operations: INIT, INSERT, LOOKUP, and DELETE. INIT initializes the symbol table st to be empty. INSERT modifies the table by adding a new binding to sf, in the case the key k is not already in the domain of st. LOOKUP requires that the key k be in the domain of the mapping, returns the value to which k is mapped, and does not change the state of the symbol table (sr’ = sf). DELETE also requires that the key k be in the domain of the mapping and modifies the table by deleting the binding associated with k from st (+I is a domain subtraction operator). The proof checker B has been used to prove theorems based on Z specifications. VDM supports a model-oriented speci-

[1]  Tony Hoare,et al.  Notes on Data Structuring , 1972 .

[2]  D. I. Good,et al.  An interactive program verification system , 1975, IEEE Transactions on Software Engineering.

[3]  John V. Guttag,et al.  The specification and application to programming of abstract data types. , 1975 .

[4]  Guy Louchard,et al.  Using Auxiliary Variables in Parallel Programs Verification , 1977, International Computing Symposium.

[5]  Harry Katzan Systems design and documentation : an introduction to the HIPO method , 1976 .

[6]  Edsger W. Dijkstra,et al.  A Discipline of Programming , 1976 .

[7]  Hans H. Kron,et al.  Programming-in-the-Large Versus Programming-in-the-Small , 1975, IEEE Transactions on Software Engineering.

[8]  Lawrence Robinson,et al.  SPECIAL - A Specification and Assertion Language. , 1976 .

[9]  James L. Peterson,et al.  Petri Nets , 1977, CSUR.

[10]  John Darlington,et al.  A Transformation System for Developing Recursive Programs , 1977, J. ACM.

[11]  Hans-Dieter Ehrich Extensions and Implementations of Abstract Data Type Specifications , 1978, MFCS.

[12]  Joseph A. Goguen,et al.  The Semantics of CLEAR, A Specification Language , 1979, Abstract Software Specifications.

[13]  Mitchell Wand,et al.  Final Algebra Semantics and Data Type Extensions , 1979, J. Comput. Syst. Sci..

[14]  Willem P. de Roever,et al.  A Proof System for Communicating Sequential Processes , 1980, ACM Trans. Program. Lang. Syst..

[15]  Zohar Manna,et al.  A Deductive Approach to Program Synthesis , 1979, TOPL.

[16]  Robert Balzer,et al.  Transformational Implementation: An Example , 1981, IEEE Transactions on Software Engineering.

[17]  Zohar Manna,et al.  Verification of concurrent programs, Part I: The temporal framework , 1981 .

[18]  Pamela Zave,et al.  An Operational Approach to Requirements Specification for Embedded Systems , 1982, IEEE Transactions on Software Engineering.

[19]  Leslie Lamport,et al.  Proving Liveness Properties of Concurrent Programs , 1982, TOPL.

[20]  Pierre Lescanne,et al.  Computer experiments with the REVE term rewriting system generator , 1983, POPL '83.

[21]  John D. Gannon,et al.  Combining Testing with Formal Specifications: A Case Study , 1983, IEEE Transactions on Software Engineering.

[22]  Samuel N. Kamin Final Data Types and Their Specification , 1983, TOPL.

[23]  William R. Swartout The GIST Behavior Explainer , 1983, AAAI.

[24]  David C. Luckham,et al.  An Overview of Anna, a Specification Language for Ada , 1985, IEEE Software.

[25]  Donald Sannella,et al.  Program specification and development in standard ML , 1985, POPL.

[26]  Per Martin-Löf,et al.  Constructive mathematics and computer programming , 1984 .

[27]  Mack W. Alford SREM at the Age of Eight; The Distributed Computing Design System , 1985, Computer.

[28]  José Meseguer,et al.  Principles of OBJ2 , 1985, POPL.

[29]  Nancy G Leveson,et al.  Software safety: why, what, and how , 1986, CSUR.

[30]  A. P. Sistla,et al.  Automatic verification of finite-state concurrent systems using temporal logic specifications , 1986, TOPL.

[31]  J. C. P. Woodcock,et al.  Transaction processing primitives and CSP , 1987 .

[32]  Jeannette M. Wing Writing Larch interface language specifications , 1987, TOPL.

[33]  Deepak Kapur,et al.  Proof by Consistency , 1987, Artif. Intell..

[34]  Nancy A. Lynch,et al.  Hierarchical correctness proofs for distributed algorithms , 1987, PODC '87.

[35]  Orna Grumberg,et al.  Research on Automatic Verification of Finite-State Concurrent Systems , 1987 .

[36]  Robert S. Boyer,et al.  A verified operating system kernel , 1987 .

[37]  M. Gordon HOL: A Proof Generating System for Higher-Order Logic , 1988 .

[38]  W. J. Cullyer Implementing Safety-Critical Systems: The VIPER Microprocessor , 1988 .

[39]  Sentot Kromodimoeljo,et al.  m-EVES: a tool for verifying software , 1988, Proceedings. [1989] 11th International Conference on Software Engineering.

[40]  Mehdi T. Harandi,et al.  Workshop on software specification and design , 1988, SOEN.

[41]  Peter Lee,et al.  The ergo support system: an integrated set of tools for prototyping integrated environments , 1988, SDE 3.

[42]  Stephen J. Garland,et al.  Verification of VLSI Circuits Using LP , 1988 .

[43]  Amnon Naamad,et al.  Statemate: a working environment for the development of complex reactive systems , 1988, ICSE '88.

[44]  Paliath Narendran,et al.  Formal verification of the Sobel image processing chip , 1988, 25th ACM/IEEE, Design Automation Conference.Proceedings 1988..

[45]  David Harel,et al.  On visual formalisms , 1988, CACM.

[46]  David S. Rosenblum,et al.  Testing the Correctness of Tasking Supervisors with TSL Specifications , 1989, Symposium on Testing, Analysis, and Verification.

[47]  Joseph A. Goguen,et al.  OBJ as a Theorem Prover with Applications to Hardware Verification , 1989 .

[48]  Stephen J. Garland,et al.  An Overview of LP, The Larch Power , 1989, RTA.

[49]  N. Delisle,et al.  Formally specifying electronic instruments , 1989, IWSSD '89.

[50]  B. P. Collins,et al.  Introducing formal methods, the CICS experience , 1989 .

[51]  J. Doug Tygar,et al.  Constraining Pictures with Pictures , 1989, IFIP Congress.

[52]  Martín Abadi,et al.  A logic of authentication , 1989, Proceedings of the Royal Society of London. A. Mathematical and Physical Sciences.