Abstract
The intent of the current paper is to show how a large problem like compiler development can be divided in a way which provides a structure for arguments of correctness. Although mechanically checked proofs are not envisaged, the use of formal notation is recommended so that the basis for correctness arguments exists.
The paper reviews three topics: the first two are relevant particularly to the development of compilers: the third is more general. The subject of the first section is the style of language definition to be used as a basis for development. Beginning with a small language, possible ways of describing added features are discussed.
The selection criterion for definition techniques is their usability in developing a specification of the compiling process: it is this development which is the subject of the second section.
The third section briefly reviews the process of "Formal Development" which has been described more fully elsewhere.
© IBM Österreich 1974
Chapter PDF
Similar content being viewed by others
Keywords
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.
References
C.D.Allen, D.N.Chapman and C.B.Jones, "A Formal Definition of Algol 60", IBM Hursley Technical Report, TR 12.105 August 1972.
H.Bekie and K.Walk, "Formalisation of Storage Properties" in "Symposium on Semantics of Algorithmic Languages" (Ed.) E.Engeler, Springer-Verlag Lecture Notes in Mathematics No. 188, October 1970.
H.Bekie, Presentation on "Semantics of Actions" given at Newcastle University, September 1974.
H.Bekic et al "A Formal Definition of PL/I" to be printed as a Technical Report of IBM Laboratory Vienna.
A.Hansal, "Software Devices for Processing Graphs Using PL/I Compile-time Facilities", Info Proc Letters. 1974.
W.Henhapl and C.B.Jones, "On the Interpretation of Goto Statements in the VDL", IBM Vienna Note, LN 25.3.065, March 1970.
W.Henhapl and C.B.Jones, "The Block Concept and Some Possible Implementations, with Proofs of Equivalence", IBM Vienna Technical Report, TR 25.104, April 1970.
C.A.R. Hoare, "Proof of Correctness of Data Representations", Acta Informatica, Vol. 1, pp 271–281, 1972.
C.B.Jones and P.Lucas, "Proving Correctness of Implementation Techniques", in "Symposium on Semantics of Algorithmic Languages" (Ed.) F. Engeler, Springer-Verlag Lecture Notes in Mathematics No. 188, October 1970.
C.B.Jones, "Sufficient Properties for Implementation Correctness: Assignment Language", IBM Hursley Note, TN 9002, June 1971.
C.B.Jones, "Formal Development of Correct Algorithms: An Example Based on Earley's Recogniser", presented at ACM SIGPLAN Conference, SIGPLAN Notices Vol. 7, No. 1, January 1972.
C.B.Jones, "Formal Development of Programs", IBM Hursley Technical Report, TR 12.117, June 1973.
P.J.Landin, "A Correspondence Between Algol 60 and Church's Lambda-Notation: Part I", Comm. of ACM, Vol. 8, No. 2, February 1965.
P.Lucas, "Two Constructive Realisations of the Block Concept and their Equivalence", IBM Vienna Technical Report, TR 25.085, 1968.
P.Lucas, "On Program Correctness and the Stepwise Development of Implementations", presented at IBM Conference at Pisa University, 1972.
P.Lucas and K. Walk, "On the Formal Description of PL/I" in Annual Review in Automatic Programming, Vol. 6, Part 3, Pergamon Press, 1969.
J.McCarthy, "Towards a Mathematical Science of Computation" presented at IFIP Congress 1962.
R.Milner, "An Algebraic Definition of Simulation Between Programs", Stanford University AIM-142, February 1971.
P. Mosses, "The Mathematical Semantics of Algol 60", Oxford University Computing Laboratory, PRG-12, January 1974.
P. Naur, "An Experiment on Program Development", BIT 12, pp 347–365, 1972.
J.C.Reynolds, "Definitional Interpreters for Higher-Order Programming Languages", presented at 25th National ACM Conference, August 1972.
D. Scott and C. Strachey, "Toward a Mathematical Semantics for Computer Languages", in "Proceedings of the Symposium on Computers and Automata", Microwave Research Institute Symposia Series Vol.21, Polytechnic Institute of Brooklyn, 1971.
C.Strachey, "Continuations: A Mathematical Semantics which can deal with Full Jumps", unpublished.
K.Walk et al, "Abstract Syntax and Interpretation of PL/I", IBM Vienna Technical Report, TR 25.098, 1969.
"PL/I BASIS/1" ECMA ANSI working document, February 1974.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1975 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Jones, C.B. (1975). Formal definition in program development. In: Hackl, C.E. (eds) Programming Methodology. IBM 1974. Lecture Notes in Computer Science, vol 23. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-07131-8_35
Download citation
DOI: https://doi.org/10.1007/3-540-07131-8_35
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-07131-0
Online ISBN: 978-3-540-37401-5
eBook Packages: Springer Book Archive