References, local variables and operational reasoning

A.R. Meyer and K. Sieber (Proc. 15th ACM. Symp. on Principles of Programming Languages, 1988, p.191-208) gave a series of examples of programs that are operationally equivalent (according to the intended semantics of block-structured Algol-like programs) but are not given equivalent denotations in traditional denotational semantics. They propose various modifications to the denotational semantics that solve some of these discrepancies, but not all. The present authors approach the same problem, but from an operational rather than a denotational perspective. They present the first-order part of a new logic for reasoning about programs, and they use this logic to prove the equivalence of the Meyer-Sieber examples.<<ETX>>

[1]  Werner Damm,et al.  A schematalogical approach to the alalysis of the procedure concept in algol-languages , 1980, CLAAP.

[2]  Carolyn L. Talcott,et al.  Inferring the Equivalence of Functional Programs That Mutate Data , 1992, Theor. Comput. Sci..

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

[4]  P. J. Landin The Mechanical Evaluation of Expressions , 1964, Comput. J..

[5]  Carolyn L. Talcott,et al.  1 Equivalence in Functional Languages with E ectsIan , 2007 .

[6]  Carolyn L. Talcott,et al.  Axiomatizing operational equivalence in the presence of side effects , 1989, [1989] Proceedings. Fourth Annual Symposium on Logic in Computer Science.

[7]  Joseph Y. Halpern,et al.  The semantics of local storage, or what makes the free-list free?(Preliminary Report) , 1984, POPL '84.

[8]  Kurt Sieber,et al.  A partial correctness logic for procedures , 1985 .

[9]  S. Feferman A Language and Axioms for Explicit Mathematics , 1975 .

[10]  James H. Morris,et al.  Lambda-calculus models of programming languages. , 1969 .

[11]  Luís Damas,et al.  Type assignment in programming languages , 1984 .

[12]  Carolyn L. Talcott,et al.  Program transformations for configuring components , 1991, PEPM '91.

[13]  Frank J. Oles,et al.  Type Algebras, Functor Categories, and Block Structure , 1986 .

[14]  P. J. Landin,et al.  The next 700 programming languages , 1966, CACM.

[15]  Gordon D. Plotkin,et al.  Call-by-Name, Call-by-Value and the lambda-Calculus , 1975, Theor. Comput. Sci..

[16]  David K. Gifford,et al.  Polymorphic effect systems , 1988, POPL '88.

[17]  Pierre Jouvelot,et al.  Algebraic reconstruction of types and effects , 1991, POPL '91.

[18]  Matthias Felleisen,et al.  A Syntactic Approach to Type Soundness , 1994, Inf. Comput..

[19]  Robin Milner,et al.  Definition of standard ML , 1990 .

[20]  S. Feferman Polymorphic typed lambda-calculi in a type-free axiomatic framework , 1990 .

[21]  Xavier Leroy,et al.  Polymorphic type inference and assignment , 1991, POPL '91.

[22]  Eugenio Moggi,et al.  Computational lambda-calculus and monads , 1989, [1989] Proceedings. Fourth Annual Symposium on Logic in Computer Science.

[23]  Carolyn L. Talcott A Theory for Program and Data Type Specification , 1992, Theor. Comput. Sci..

[24]  M. Tofte Operational Semantics and Polymorphic Type Inference , 1988 .

[25]  Matthias Felleisen,et al.  The calculi of lambda-nu-cs conversion: a syntactic theory of control and state in imperative higher-order programming languages , 1987 .

[26]  Mads Tofte,et al.  Type Inference for Polymorphic References , 1990, Inf. Comput..

[27]  Joannes M. Lucassen Types and Effects Towards the Integration of Functional and Imperative Programming. , 1987 .

[28]  Albert R. Meyer,et al.  Towards a fully abstract semantics for local variables: Preliminary report , 1988 .

[29]  Ian A. Mason,et al.  A Variable Typed Logic of E ects , 1993 .

[30]  Ernst-Rüdiger Olderog,et al.  Hoare's Logic for Programs with Procedures - What Has Been Achieved? , 1983, Logic of Programs.

[31]  Joseph Y. Halpern,et al.  From Denotational to Operational and Axiomatic Semantics for ALGOL-like Languages: an Overview , 1983, Logic of Programs.