# Scientific Decisions which Characterize VDM

Conference paper

First Online:

## Abstract

The formal description and development method known as VDM has been used extensively, its specification language is now an ISO standard, and it has influenced other specification languages. The origins of VDM are normally placed in language description or semantics but it is probably best known in the wider arena of formal methods for (general) program specification and design. This paper sets out a personal view of some of the key technical decisions which characterize the Vienna Development Method.

## Keywords

Abnormal Return Operational Semantic Abstract Syntax Proof Obligation Denotational Semantic
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Download
to read the full conference paper text

## References

- [1]J. R. Abrial.
*The B-Book: Assigning programs to meanings*. Cambridge University Press, 1996.Google Scholar - [2]P. Aczel. A note on program verication. manuscript, January 1982.Google Scholar
- [3]C. D. Allen, D. N. Chapman, and C. B. Jones. A formal denition of ALGOL 60. Technical Report 12.105, IBM Laboratory Hursley, August 1972.Google Scholar
- [4]D. Andrews and W. Henhapl. Pascal. In [13], pages 175–252. 1982.Google Scholar
- [5]E. Astesiano, H. J. Kreowski, and B. Krieg-Brueckner, editors.
*Algebraic Foundations of System Specication*. Springer Verlag, 1999.Google Scholar - [6]H. Barringer, J.H. Cheng, and C. B. Jones. A logic covering undefinedness in program proofs.
*Acta Informatica*, 21:251–269, 1984.zbMATHCrossRefMathSciNetGoogle Scholar - [7]H. Bekič.
*Programming Languages and Their Definition: Selected Papers of H. Bekič*, volume 177 of*Lecture Notes in Computer Science*. Springer-Verlag, 1984.zbMATHGoogle Scholar - [8]H. Bekič, D. Bjørner, W. Henhapl, C. B. Jones, and P. Lucas. A formal definition of a PL/I subset. Technical Report 25.139, IBM Laboratory Vienna, December 1974.Google Scholar
- [9]H. Bekič, H. Izbicki, C. B. Jones, and F. Weissenböck. Some experiments with using a formal language definition in compiler development. Technical Report LN 25.3.107, IBM Laboratory, Vienna, December 1975.Google Scholar
- [10]H. Bekič and K. Walk. Formalization of storage properties. In [20], pages 28–61. 1971.Google Scholar
- [11]D. Bjørner, editor.
*Abstract Software Specifications: 1979 Copenhagen Winter School Proceedings*, volume 86 of*Lecture Notes in Computer Science*. Springer-Verlag, Berlin, 1980.zbMATHGoogle Scholar - [12]D. Bjørner and C. B. Jones, editors.
*The Vienna Development Method: The Meta-Language*, volume 61 of*Lecture Notes in Computer Science*. Springer-Verlag, 1978.zbMATHGoogle Scholar - [13]D. Bjørner and C. B. Jones.
*Formal Specification and Software Development*. Prentice Hall International, 1982.Google Scholar - [14]D. Bjørner and O. N. Oest, editors.
*Towards a Formal Description of Ada*, volume 98 of*Lecture Notes in Computer Science*. Springer-Verlag, Berlin, 1980.zbMATHGoogle Scholar - [15]J. H. Cheng and C. B. Jones. On the usability of logics which handle partial functions. In C. Morgan and J. C. P. Woodcock, editors,
*3rd Refinement Workshop*, pages 51–69. Springer-Verlag, 1991.Google Scholar - [16]Pierre Collette.
*Design of Compositional Proof Systems Based on Assumption-Commitment Specifications-Application to UNITY*. PhD thesis, Louvain-la-Neuve, June 1994.Google Scholar - [17]Pierre Collette and Cliff B. Jones. Enhancing the tractability of rely/guarantee specifications in the development of interfering operations. Technical Report UMCS-95-10-3, Manchester University, 1995.Google Scholar
- [18]J. W. de Bakker and D. Scott. A theory of programs. Manuscript notes for IBM Seminar, Vienna, August 1969.Google Scholar
- [19]E. W. Dijkstra.
*A Discipline of Programming*. Prentice-Hall, 1976.Google Scholar - [20]E. Engeler.
*Symposium on Semantics of Algorithmic Languages*. Number 188 in Lecture Notes in Mathematics. Springer-Verlag, 1971.Google Scholar - [21]R. W. Floyd. On the nonexistence of a phrase structure grammar for ALGOL 60.
*Communications of the ACM*, 5:483–484, 1962.zbMATHCrossRefGoogle Scholar - [22]R. W. Floyd. Assigning meanings to programs. In
*Proc. Symp. in Applied Mathematics*,*Vol.19: Mathematical Aspects of Computer Science*, pages 19–32. American Mathematical Society, 1967.Google Scholar - [23]M.J.C. Gordon.
*The Denotational Description of Programming Languages*. Springer-Verlag, 1979.Google Scholar - [24]The RAISE Language Group.
*The RAISE Specification Language*. BCS Practitioner Series. Prentice Hall, 1992. ISBN 0-13-752833-7.Google Scholar - [25]The RAISE Method Group.
*The RAISE Development Method*. BCS Practitioner Series. Prentice Hall, 1995. ISBN 0-13-752700-4.Google Scholar - [26]John V. Guttag and James J. Horning.
*Larch: Languages and Tools for Formal Specification*. Texts and Monographs in Computer Science. Springer-Verlag, 1993. ISBN 0-387-94006-5/ISBN 3-540-94006-5.Google Scholar - [27]I. J. Hayes, C. B. Jones, and J. E. Nicholls. Understanding the differences between VDM and Z.
*ACM Software Engineering News*, 19(3):75–81, July 1994.CrossRefGoogle Scholar - [28]W. Henhapl. A proof of correctness for the reference mechanism to automatic variables in the F-compiler. Technical Report LN 25.3.048, IBM Laboratory Vienna, Austria, November 1968.Google Scholar
- [29]W. Henhapl and C. B. Jones. The block concept and some possible implementations, with proofs of equivalence. Technical Report 25.104, IBM Laboratory Vienna, April 1970.Google Scholar
- [30]W. Henhapl and C. B. Jones. On the interpretation of GOTO statements in the ULD. Technical Report LN 25.3.065, IBM Laboratory, Vienna, March 1970.Google Scholar
- [31]W. Henhapl and C. B. Jones. Some observations on the implementation of reference mechanisms for automatic variables. Technical Report LR 25.3.070, IBM Laboratory, Vienna, May 1970.Google Scholar
- [32]W. Henhapl and C. B. Jones. A run-time mechanism for referencing variables. Information Processing Letters, 1(1):14–16, 1971.zbMATHGoogle Scholar
- [33]W. Henhapl and C. B. Jones. A formal definition of ALGOL 60 as described in the 1975 modified report. In The [
*12*], pages 305–336. 1978.Google Scholar - [34]C. A. R. Hoare. An axiomatic basis for computer programming.
*Communications of the ACM*, 12(10):576–580, 583, October 1969.zbMATHCrossRefGoogle Scholar - [35]C. A. R. Hoare. Proof of a program: FIND.
*Communications of the ACM*, 14:39–45, January 1971.zbMATHCrossRefMathSciNetGoogle Scholar - [36]C. A. R. Hoare. Proof of correctness of data representations.
*Acta Informatica*, 1:271–281, 1972.zbMATHCrossRefGoogle Scholar - [37]Steve J. Hodges and Cliff B. Jones. Non-interference properties of a concurrent object-based language: Proofs based on an operational semantics. In Burkhard Freitag, Cliff B. Jones, Christian Lengauer, and Hans-Jörg Schek, editors,
*Object Orientation with Parallelism and Persistence*, pages 1–22. Kluwer Academic Publishers, 1996.Google Scholar - [38]C. B. Jones. A technique for showing that two functions preserve a relation between their domains. Technical Report LR 25.3.067, IBM Laboratory, Vienna, April 1970.Google Scholar
- [39]C. B. Jones. Formal development of correct algorithms: an example based on Earley’s recogniser. In
*SIGPLAN Notices*, Volume 7 Number 1, pages 150–169. ACM, January 1972.CrossRefGoogle Scholar - [40]C. B. Jones. Formal development of programs. Technical Report 12.117, IBM Laboratory Hursley, June 1973.Google Scholar
- [41]C. B. Jones. Formal definition in compiler development. Technical Report 25.145, IBM Laboratory Vienna, February 1976.Google Scholar
- [42]C. B. Jones. Implementation bias in constructive specification of abstract objects. typescript, September 1977.Google Scholar
- [43]C. B. Jones. Denotational semantics of goto: An exit formulation and its relation to continuations. In [12], pages 278–304. 1978.Google Scholar
- [44]C. B. Jones. Constructing a theory of a data structure as an aid to program development.
*Acta Informatica*, 11:119–137, 1979.zbMATHCrossRefGoogle Scholar - [45]C. B. Jones. The Vienna Development Method: Examples of compiler development. In M. Amirchahy and D. Neel, editors,
*Le Point sur la Compilation*, pages 89–114. IRIA-SEFI, 1979.Google Scholar - [46]C. B. Jones.
*Software Development: A Rigorous Approach*. Prentice Hall International, 1980. ISBN 0-13-821884-6.Google Scholar - [47]C. B. Jones.
*Development Methods for Computer Programs including a Notion of Interference*. PhD thesis, Oxford University, June 1981. Printed as: Programming Research Group, Technical Monograph 25.Google Scholar - [48]C. B. Jones.
*Systematic Software Development Using VDM*. Prentice Hall International, 1986.Google Scholar - [49]C. B. Jones. Program specification and verification in VDM. In M. Broy, editor,
*Logic of Programming and Calculi of Discrete Design*, volume 36 of*NATO ASI Series F: Computer and Systems Sciences*, pages 149–184. Springer-Verlag, 1987.Google Scholar - [50]C. B. Jones. Data reification. In J. A. McDermid, editor,
*The Theory and Practice of Refinement*, pages 79–89. Butterworths, 1989.Google Scholar - [51]C. B. Jones. Process algebra arguments about an object-based design notation. In A. W. Roscoe, editor,
*A Classical Mind*, chapter 14, pages 231–246. Prentice-Hall, 1994.Google Scholar - [52]C. B. Jones. TANSTAAFL with partial functions. In William Farmer, Manfred Kerber, and Michael Kohlhase, editors,
*Proceedings of the Workshop on the Mechanization Of Partial Functions*, pages 53–64, 1996.Google Scholar - [53]C. B. Jones and P. Lucas. Proving correctness of implementation techniques. In [20], pages 178–211. 1971.Google Scholar
- [54]P. J. Landin. A correspondence between ALGOL-60 and Church’s lambdanotation. Parts I and II.
*Communications of the ACM*, 8:89–101, 158-165, 1965.CrossRefMathSciNetGoogle Scholar - [55]P. J. Landin. The next 700 programming languages.
*Communications of the ACM*, 9:157–166, 1966.zbMATHCrossRefGoogle Scholar - [56]P. Lucas. Two constructive realizations of the block concept and their equivalence. Technical Report TR 25.085, IBM Laboratory Vienna, June 1968.Google Scholar
- [57]P. Lucas and K. Walk.
*On The Formal Description of PL/I*, volume 6 of*Annual Review in Automatic Programming Part 3*. Pergamon Press, 1969.Google Scholar - [58]Peter Lucas. On the semantics of programming languages and software devices. In Randall Rustin, editor,
*Formal Semantics of Programming Languages*, pages 41–57, Englewood Cliffs, New Jersey, 1972. Prentice Hall. Proceedings of the Courant Computer Science Symposium 2.Google Scholar - [59]M. Mac an Airchinnigh. Tutorial Lecture Notes on the Irish School of the VDM. In [71], pages 141–237, 1991.Google Scholar
- [60]A. W. Mazurkiewicz. Proving algorithms by tail functions.
*Information and Control*, 18(3):220–226, April 1971.CrossRefzbMATHMathSciNetGoogle Scholar - [61]J. McCarthy. A formal description of a subset of ALGOL. In [
*73*], pages 1–12, 1966.Google Scholar - [62]J. McCarthy. A basis for a mathematical theory for computation. In P. Braffort and D. Hirschberg, editors,
*Computer Programming and Formal Systems*, pages 33–70. North-Holland Publishing Company, 1967.Google Scholar - [63]Cornelius A. Middelburg.
*Logic and Specification: Extending VDM-SL for advanced formal specification*. Chapman and Hall, 1993.Google Scholar - [64]R. Milne and C. Strachey.
*A Theory of Programming Language Semantics*. Chapman and Hall, 1976.Google Scholar - [65]R. Milner. An algebraic definition of simulation between programs. Technical Report CS-205, Computer Science Dept, Stanford University, February 1971.Google Scholar
- [66]F. L. Morris. The next 700 formal language descriptions. Manuscript, 1970.Google Scholar
- [67]P. D. Mosses. The mathematical semantics of Algol 60. Technical Monograph PRG-12, Oxford University Computing Laboratory, Programming Research Group, January 1974.Google Scholar
- [68]Peter D. M osses.
*Action Semantics*. Number 26 in Cambridge Tracts in Theoretical Computer Science. Cambridge University Press, 1992.Google Scholar - [69]G. D. Plotkin. A powerdomain construction.
*SIAM J. Comput.*, 5(3), 1976.Google Scholar - [70]G. D. Plotkin. A structural approach to operational semantics. Technical report, Aarhus University, 1981.Google Scholar
- [71]S. Prehn and W. J. Toetenel, editors.
*VDM’91-Formal Software Development Methods*.*Proceedings of the 4th International Symposium of VDM Europe*, No-ordwijkerhout, The Netherlands, October 1991, Vol.2: Tutorials, volume 552 of*Lecture Notes in Computer Science*. Springer-Verlag, 1991.Google Scholar - [72]J.M. Spivey.
*The Z Notation: A Reference Manual*. Prentice Hall International, second edition, 1992.Google Scholar - [73]T. B. Steel.
*Formal Language Description Languages for Computer Programming*. North-Holland, 1966.Google Scholar - [74]K. Stølen.
*Development of Parallel Programs on Shared Data-Structures*. PhD thesis, Manchester University, 1990. available as UMCS-91-1-1.Google Scholar - [75]J.E. Stoy.
*Denotational Semantics: The Scott-Strachey Approach to Programming Language Theory*. MIT Press, 1977.Google Scholar - [76]C. Strachey and C. P. Wadsworth. Continuations-a mathematical semantics for handling jumps. Monograph PRG-11, Oxford University Computing Laboratory, Programming Research Group, January 1974.Google Scholar
- [77]R. L. Wexelblat.
*History of Programming Languages*. Academic Press, 1981.Google Scholar

## Copyright information

© Springer-Verlag Berlin Heidelberg 1999