Modularising the specification of a small database system in extended ML

A case study in the modular specification and refinement of a small database system is presented in Extended ML. Two similar requirements specifications are given and a program development step from each these is presented. The structure resulting from the first program development step is similar to that given in [FiJ90] and is presented as an answer to the challenge problem given in that paper, while the second development step is presented as a possible alternative which is more suited to the Extended ML style of program development. In the context of these two development steps the module facilities of Extended ML, their role in specification and program development and their ability to meet the challenge of [FiJ90] are examined.

[1]  Cliff B. Jones,et al.  Modularizing the Formal Description of a Database System , 1990, VDM Europe.

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

[3]  Donald Sannella,et al.  On Observational Equivalence and Algebraic Specification , 1987, J. Comput. Syst. Sci..

[4]  Donald Sannella,et al.  Toward Formal Development of ML Programs: Foundations and Methodology (Extended Abstract) , 1989, TAPSOFT, Vol.2.

[5]  Robin Milner,et al.  Principal type-schemes for functional programs , 1982, POPL '82.

[6]  Cliff B. Jones,et al.  Systematic software development using VDM , 1986, Prentice Hall International Series in Computer Science.

[7]  Donald Fenna,et al.  The Data Base , 1978 .

[8]  Hartmut Ehrig,et al.  Fundamentals of Algebraic Specification 1: Equations and Initial Semantics , 1985 .

[9]  Donald Sannellay,et al.  A kernel speci cation formalism with higher-order parameterisation , 1991 .

[10]  Robin Milner,et al.  A Theory of Type Polymorphism in Programming , 1978, J. Comput. Syst. Sci..

[11]  Stéphane Bressan,et al.  Introduction to Database Systems , 2005 .

[12]  Hartmut Ehrig,et al.  Fundamentals of Algebraic Specification 2: Module Specifications and Constraints , 1990 .

[13]  Donald Sannella Formal program development in Extended ML for the working programmer , 1990 .

[14]  Donald Sannella,et al.  A Kernel Specification Formalism with Higher-Order Parameterization , 1990, ADT.

[15]  Robin Milner,et al.  Commentary on standard ML , 1990 .

[16]  David B. MacQueen Modules for standard ML , 1984, LFP '84.

[17]  Donald Sannella,et al.  Building Specifications in an Arbitrary Institution , 1984, Semantics of Data Types.

[18]  Luca Cardelli,et al.  On understanding types, data abstraction, and polymorphism , 1985, CSUR.

[19]  Donald Sannella,et al.  Toward formal development of programs from algebraic specifications: Parameterisation revisited , 1992, Acta Informatica.

[20]  Donald Sannella,et al.  Specifications in an Arbitrary Institution , 1988, Inf. Comput..

[21]  Robin Milner,et al.  Definition of standard ML , 1990 .

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

[23]  Rod M. Burstall,et al.  Structured Theories in LCF , 1983, CAAP.