From VDM specifications to functional prototypes

Abstract This article describes informally a method for translating formal, model-based specifications into functional prototypes. Such prototypes can be used to validate software system specifications in the very early stages of the design process. We show how to translate the executable subset of the Vienna Development Method (VDM) language into Lazy ML, establishing the translation schemes and requirements needed for an automated translation process. Here we are not concerned with implicit specifications, but indicate, in places, what has to be done for such specifications to be automatically translated into a functional program. A small example—part of a translation system from VDM to LML—gives the reader a good idea of the power of the approach.

[1]  Barry Eaglestone,et al.  Software development: two approaches to animation of Z specifications using Prolog , 1992, Softw. Eng. J..

[2]  Douglas R. Smith,et al.  KIDS: A Semiautomatic Program Development System , 1990, IEEE Trans. Software Eng..

[3]  Paul Krause,et al.  Computer Aided Transformation of Z into Prolog , 1989, Z User Workshop.

[4]  D. A. Turner,et al.  Miranda: A Non-Strict Functional language with Polymorphic Types , 1985, FPCA.

[5]  Cliff B. Jones,et al.  Specifications are not (necessarily) executable , 1989 .

[6]  Carroll Morgan,et al.  Programming from specifications , 1990, Prentice Hall International Series in computer science.

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

[8]  Vipin Swarup,et al.  Assignments for Applicative Languages , 1991, FPCA.

[9]  Susan Stepney,et al.  Formal specification of an access control system , 1987, Softw. Pract. Exp..

[10]  Friedrich L. Bauer,et al.  Formal Program Construction by Transformations-Computer-Aided, Intuition-Guided Programming , 1989, IEEE Trans. Software Eng..

[11]  Peter A. Lindsay,et al.  mural: A Formal Development Support System , 1991, Springer London.

[12]  Michael Johnson,et al.  From Z Specifications To Functional Implementations , 1989, Z User Workshop.

[13]  David Turner Functional programs as executable specifications , 1984, Philosophical Transactions of the Royal Society of London. Series A, Mathematical and Physical Sciences.