Abstract
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.
Preview
Unable to display preview. Download preview PDF.
References
K.R. Apt. Ten years of Hoare's logic: A survey-part I. ACM Transactions on Programming Languages and Systems, 4:431–483, 1981.
S. Feferman. A language and axioms for explicit mathematics. In Algebra and Logic, volume 450 of Springer Lecture Notes in Mathematics, pages 87–139. Springer Verlag, 1975.
S. Feferman. Constructive theories of functions and classes. In Logic Colloquium '78, pages 159–224. North-Holland, 1979.
S. Feferman. A theory of variable types. Revista Colombiana de Matématicas, 19:95–105, 1985.
S. Feferman. Polymorphic typed lambda-calculi in a type-free axiomatic framework. In Logic and Computation, Volume 106 of Contemporary Mathematics, pages 101–136. A.M.S., Providence R. I., 1990.
M. Felleisen, 1993. Personal communication.
M. Felleisen and D.P. Friedman. Control operators, the SECD-machine, and the λ-calculus. In M. Wirsing, editor, Formal Description of Programming Concepts III, pages 193–217. North-Holland, 1986.
Richard P. Gabriel. Performance and Evaluation of Lisp Systems. Computer Systems Series. MIT Press, Cambridge, Massachusetts, 1985.
D. Harel. Dynamic logic. In D. Gabbay and G. Guenthner, editors, Handbook of Philosophical Logic, Vol. II, pages 497–604. D. Reidel, 1984.
F. Honsell, I. A. Mason, S. F. Smith, and C. L. Talcott. A Variable Typed Logic of Effects. Information and Computation, ???(???):???–???, 199?
F. Honsell, I. A. Mason, S. F. Smith, and C. L. Talcott. A theory of classes for a functional language with effects. In Proceedings of CSL92, Volume ??? of Lecture Notes in Computer Science, pages---–---Springer, Berlin, 1993.
U. Jø rring and W. L. Scherlis. Deriving and using destructive data types. In IFIP TC2 Working Conference on Program Specification and Transformation. North-Holland, 1986.
I. A. Mason. The Semantics of Destructive Lisp. PhD thesis, Stanford University, 1986. Also available as CSLI Lecture Notes No. 5, Center for the Study of Language and Information, Stanford University.
I. A. Mason. Verification of programs that destructively manipulate data. Science of Computer Programming, 10:177–210, 1988.
I. A. Mason, J. D. Pehoushek, C. L. Talcott, and J. S. Weening. A Qlisp Primer. Technical Report STAN-CS-90-1340, Department of Computer Science, Stanford University, 1990.
I. A. Mason and C. L. Talcott. Axiomatizing operational equivalence in the presence of side effects. In Fourth Annual Symposium on Logic in Computer Science. IEEE, 1989.
I. A. Mason and C. L. Talcott. Programming, transforming, and proving with function abstractions and memories. In Proceedings of the 16th EATCS Colloquium on Automata, Languages, and Programming, Stresa, Volume 372 of Lecture Notes in Computer Science, pages 574–588. Springer-Verlag, 1989.
I. A. Mason and C. L. Talcott. Equivalence in functional languages with effects. Journal of Functional Programming, 1:287–327, 1991.
I. A. Mason and C. L. Talcott. Inferring the equivalence of functional programs that mutate data. Theoretical Computer Science, 105(2):167–215, 1992.
I. A. Mason and C. L. Talcott. References, local variables and operational reasoning. In Seventh Annual Symposium on Logic in Computer Science, pages 186–197. IEEE, 1992.
J. McCarthy. A basis for a mathematical theory of computation. In P. Braffort and D Herschberg, editors, Computer programming and formal systems, pages 33–70. North-Holland, 1963.
E. Moggi. Computational lambda-calculus and monads. Technical Report ECS-LFCS-88-86, University of Edinburgh, 1988.
E. Moggi. Computational lambda-calculus and monads. In Fourth Annual Symposium on Logic in Computer Science. IEEE, 1989.
J. H. Morris. Lambda calculus models of programming languages. PhD thesis, Massachusetts Institute of Technology, 1968.
J. H. Morris and B. Wegbreit. Subgoal induction. Communications of the Association for Computing Machinery, 20:209–222, 1976.
G. Plotkin. Call-by-name, call-by-value and the lambda calculus. Theoretical Computer Science, 1:125–159, 1975.
J.C. Reynolds. Idealized ALGOL and its specification logic. In D. Néel, editor, Tools and Notions for Program Construction, pages 121–161. Cambridge University Press, 1982.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1994 Springer-Verlag Berlin Heidelberg
About this chapter
Cite this chapter
Mason, I.A., Talcott, C. (1994). Program transformation via contextual assertions. In: Jones, N.D., Hagiya, M., Sato, M. (eds) Logic, Language and Computation. Lecture Notes in Computer Science, vol 792. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0032403
Download citation
DOI: https://doi.org/10.1007/BFb0032403
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-57935-9
Online ISBN: 978-3-540-48391-5
eBook Packages: Springer Book Archive