Formalization in Program Development

The concepts of specification and formalization, as relevant to the development of programs, are introduced and discussed. It is found that certain arguments given for using particular formal modes of expression in developing and proving programs correct are invalid. As illustration a formalized description of Algol 60 is discussed and found deficient. Emphasis on formalization is shown to have harmful effects on program development, such as neglect of informal precision and simple formalizations. A style of specifications using formalizations only to enhance intuitive understandability is recommended.

[1]  Dines Bjørner,et al.  Abstract Software Specifications , 1982, Lecture Notes in Computer Science.

[2]  Cliff B. Jones,et al.  Software development - a rigorous approach , 1980, Prentice Hall international series in computer science.

[3]  K. Mani Chandy,et al.  Current trends in programming methodology , 1977 .

[4]  L. Wittgenstein Tractatus Logico-Philosophicus , 2021, Nordic Wittgenstein Review.

[5]  Alfred V. Aho,et al.  The Design and Analysis of Computer Algorithms , 1974 .

[6]  Peter Naur,et al.  Concise survey of computer methods , 1974 .

[7]  I. D. Hill,et al.  A supplement to the ALGOL 60 Revised Report , 1976 .

[8]  Dines Bjørner,et al.  The Vienna Development Method: The Meta-Language , 1978, Lecture Notes in Computer Science.

[9]  Barbara Liskov,et al.  Modular Program Construction Using Abstractions , 1979, Abstract Software Specifications.

[10]  F. L. Bauer,et al.  Revised report on the algorithmic languageAlgol 60 , 1962 .

[11]  Friedrich L. Bauer,et al.  Revised report on the algorithm language ALGOL 60 , 1963, CACM.

[12]  Heinz Zemanek Abstract Architecture , 1979, Abstract Software Specifications.

[13]  Cliff B. Jones The META-Language: A Reference Manual , 1978, The Vienna Development Method: The Meta-Language.

[14]  Cliff B. Jones,et al.  A Formal Definition of Algol 60 as Described in the 1975 Modified Report , 1978, The Vienna Development Method: The Meta-Language.

[15]  J. A. Goguen More thoughts on specification and verification , 1981, SOEN.

[16]  John McCarthy,et al.  Recursive functions of symbolic expressions and their computation by machine, Part I , 1959, Commun. ACM.

[17]  Alan J. Perlis Computation's development critical to our society , 1963, CACM.