Program Transformation via Contextual Assertions

In this paper we describe progress towards a theory of tranformational program development. The transformation rules are based on a theory of contextual equivalence for functional languages with imperative features. Such notions of equivalence are fundamental for the process of program specification, derivation, transformation, refinement and other forms of code generation and optimization. This paper is dedicated to Professor Satoru Takasu.

[1]  Lawrence C. Paulson,et al.  Logic And Computation , 1987 .

[2]  Richard P. Gabriel,et al.  Performance and evaluation of Lisp systems , 1985 .

[3]  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.

[4]  Matthias Felleisen,et al.  Control operators, the SECD-machine, and the λ-calculus , 1987, Formal Description of Programming Concepts.

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

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

[7]  John McCarthy,et al.  A basis for a mathematical theory of computation, preliminary report , 1899, IRE-AIEE-ACM '61 (Western).

[8]  Carolyn L. Talcott,et al.  Programming, Transforming, and Providing with Function Abstractions and Memories , 1989, ICALP.

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

[10]  William L. Scherlis,et al.  Deriving and using destructive data types , 1987 .

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

[12]  John McCarthy,et al.  A BASIS FOR A MATHEMATICAL THEORY OF COMPUTATION 1) , 2018 .

[13]  Ian A. Mason Verification of Programs That Destructively Manipulate Data , 1988, Sci. Comput. Program..

[14]  Carolyn L. Talcott,et al.  A Variable Typed Logic of Effects , 1995, Inf. Comput..

[15]  James H. Morris,et al.  Subgoal induction , 1977, CACM.

[16]  Ian A. Mason The Semantics of Destructive LISP , 1986 .

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

[18]  Carolyn L. Talcott,et al.  A Theory of Classes for a Functional Language with Effects , 1992, CSL.

[19]  S. Feferman Constructive Theories of Functions and Classes , 1979 .

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

[21]  Carolyn L. Talcott,et al.  References, local variables and operational reasoning , 1992, [1992] Proceedings of the Seventh Annual IEEE Symposium on Logic in Computer Science.

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

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

[24]  Solomon Feferman A theory of variable types , 1985 .