Idealized ALGOL and its specification logic

Specification logic is a new formal system for program proving that is applicable to programming languages, such as Algol, whose procedure mechanism can be described by the copy rule. The starting point of its development is the recognition that, in the presence of an Algol-like procedure mechanism, specifications, such as the Hoare triple {P} S {Q} [Hoare, 1969], must be regarded as predicates about environments (in the sense of Landin [Landin, 1965; Landin, 1966]). The logic provides additional kinds of specifications describing an interference relation (#) between variables and other entities, and permits specifications to be compounded using the operations of implication (⇒), conjunction (&), and universal quantification (∀). The result is a system in which one can infer universal specifications, i.e. specifications that hold in all environments.

[1]  P. J. Landin,et al.  Correspondence between ALGOL 60 and Church's Lambda-notation , 1965, Commun. ACM.

[2]  P. J. Landin A λ-CALCULUS APPROACH , 1966 .

[3]  R. M. Burstall,et al.  Advances in programming and non-numerical computation , 1967, The Mathematical Gazette.

[4]  C. A. R. Hoare,et al.  An axiomatic basis for computer programming , 1969, CACM.

[5]  John C. Reynolds,et al.  The essence of ALGOL , 1997 .

[6]  C. A. R. Hoare,et al.  A contribution to the development of ALGOL , 1966, CACM.

[7]  John C. Reynolds,et al.  The craft of programming , 1981, Prentice Hall International series in computer science.

[8]  C. A. R. Hoare,et al.  Procedures and parameters: An axiomatic approach , 1971, Symposium on Semantics of Algorithmic Languages.

[9]  David Gries,et al.  Assignment and Procedure Call Proof Rules , 1980, TOPL.