Present-Day Hoare-Like Systems for Programming Languages with Procedures: Power, Limits and most Likely Expressions

This paper indicates that presently known Hoare-like systems for ALGOL-like languages with static scope semantics can deal only with programs which can effectively be transformed into formally equivalent programs without procedure nesting (Remark 4 and 5 and Section 8). There are not yet methods to attack PASCAL-like programs (sample program \(\tilde \pi\) in section 9), programs without self-application of procedures (Conjecture 1) and program classes for which the formal termination problem is solvable (Conjecture 2).

[1]  David Lorge Parnas,et al.  A technique for software module specification with examples , 1972, CACM.

[2]  Peter Naur Proof of Algorithms by General Snapshots , 1966 .

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

[4]  Zohar Manna,et al.  Is “sometime” sometimes better than “always”?: Intermittent assertions in proving program correctness , 1976, ICSE '76.

[5]  Thomas Reps,et al.  Cps - the cornell program synthesizer , 1981 .

[6]  Amir Pnueli,et al.  A complete axiomatic system for proving deductions about recursive programs , 1977, STOC '77.

[7]  Arthur G. Duncan,et al.  Abstractions, instantiations, and proofs of marking algorithms , 1977, Artificial Intelligence and Programming Languages.

[8]  James H. Morris,et al.  Another recursion induction principle , 1971, CACM.

[9]  Richard J. Lipton,et al.  A necessary and sufficient condition for the existence of hoare logics , 1977, 18th Annual Symposium on Foundations of Computer Science (sfcs 1977).

[10]  James E. Donahue,et al.  Complementary Definitions of Programming Language Semantics , 1976, Lecture Notes in Computer Science.

[11]  David B. Loveman,et al.  Program Improvement by Source-to-Source Transformation , 1977, J. ACM.

[12]  Tadao Kasami,et al.  On the capabilities of while, repeat, and exit statements , 1973, Commun. ACM.

[13]  Hans Langmaack,et al.  On a theory of decision problems in programming languages , 1978, Mathematical Studies of Information Processing.

[14]  Helmuth Partsch,et al.  A Family of Rules for Recursion Removal , 1976, Inf. Process. Lett..

[15]  Susan S. Owicki,et al.  Axiomatic Proof Techniques for Parallel Programs , 1975, Outstanding Dissertations in the Computer Sciences.

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

[17]  Stephen A. Cook,et al.  Soundness and Completeness of an Axiom System for Program Verification , 1978, SIAM J. Comput..

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

[19]  Peter Kandzia,et al.  On the Most Recent Property of Algol-Like Programs , 1974, ICALP.

[20]  Joseph M. Morris A Proof of the Schorr-Waite Algorithm , 1982 .

[21]  David Harel,et al.  First-Order Dynamic Logic , 1979, Lecture Notes in Computer Science.

[22]  Hans Langmaack,et al.  The Formal Termination Problem for Programs with Finite ALGOL 68-Modes , 1979, Inf. Process. Lett..

[23]  Jean Vuillemin Correct and Optimal Implementations of Recursion in a Simple Programming Language , 1974, J. Comput. Syst. Sci..

[24]  Krzysztof R. Apt,et al.  Ten Years of Hoare's Logic: A Survey—Part I , 1981, TOPL.

[25]  William M. Waite,et al.  An efficient machine-independent procedure for garbage collection in various list structures , 1967, CACM.

[26]  H. R. Strong,et al.  Translating recursion equations into flow charts , 1970, J. Comput. Syst. Sci..

[27]  Robert Cartwright,et al.  Unrestricted procedure calls in Hoare's logic , 1978, POPL '78.

[28]  Lawrence Robinson,et al.  Proof techniques for hierarchically structured programs , 1977, CACM.

[29]  Edsger W. Dijkstra,et al.  Guarded commands, nondeterminacy and formal derivation of programs , 1975, Commun. ACM.

[30]  Joseph E. Stoy,et al.  Denotational Semantics: The Scott-Strachey Approach to Programming Language Theory , 1981 .

[31]  Seymour Ginsburg,et al.  Stack automata and compiling , 1967, JACM.

[32]  Werner Damm,et al.  On the Power of Self-Application and Higher Type-Recursion , 1978, ICALP.

[33]  Edmund M. Clarke,et al.  Programming Language Constructs for Which It Is Impossible To Obtain Good Hoare Axiom Systems , 1979, JACM.

[34]  Judy A. Townley The use of transformations to implement an algorithm , 1982, Symposium on Programming.

[35]  Clement L. McGowan The “most recent” error: Its causes and correction , 1972 .

[36]  Zohar Manna,et al.  PROPERTIES OF PROGRAMS AND PARTIAL FUNCTION LOGIC , 1969 .