Skip to main content

Program transformation via contextual assertions

  • Chapter
  • First Online:
Logic, Language and Computation

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 792))

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. K.R. Apt. Ten years of Hoare's logic: A survey-part I. ACM Transactions on Programming Languages and Systems, 4:431–483, 1981.

    Article  Google Scholar 

  2. 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.

    Google Scholar 

  3. S. Feferman. Constructive theories of functions and classes. In Logic Colloquium '78, pages 159–224. North-Holland, 1979.

    Google Scholar 

  4. S. Feferman. A theory of variable types. Revista Colombiana de Matématicas, 19:95–105, 1985.

    Google Scholar 

  5. 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.

    Google Scholar 

  6. M. Felleisen, 1993. Personal communication.

    Google Scholar 

  7. 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.

    Google Scholar 

  8. Richard P. Gabriel. Performance and Evaluation of Lisp Systems. Computer Systems Series. MIT Press, Cambridge, Massachusetts, 1985.

    Google Scholar 

  9. D. Harel. Dynamic logic. In D. Gabbay and G. Guenthner, editors, Handbook of Philosophical Logic, Vol. II, pages 497–604. D. Reidel, 1984.

    Google Scholar 

  10. F. Honsell, I. A. Mason, S. F. Smith, and C. L. Talcott. A Variable Typed Logic of Effects. Information and Computation, ???(???):???–???, 199?

    Google Scholar 

  11. 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.

    Google Scholar 

  12. 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.

    Google Scholar 

  13. 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.

    Google Scholar 

  14. I. A. Mason. Verification of programs that destructively manipulate data. Science of Computer Programming, 10:177–210, 1988.

    Article  Google Scholar 

  15. 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.

    Google Scholar 

  16. 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.

    Google Scholar 

  17. 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.

    Google Scholar 

  18. I. A. Mason and C. L. Talcott. Equivalence in functional languages with effects. Journal of Functional Programming, 1:287–327, 1991.

    Google Scholar 

  19. I. A. Mason and C. L. Talcott. Inferring the equivalence of functional programs that mutate data. Theoretical Computer Science, 105(2):167–215, 1992.

    Article  Google Scholar 

  20. 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.

    Google Scholar 

  21. 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.

    Google Scholar 

  22. E. Moggi. Computational lambda-calculus and monads. Technical Report ECS-LFCS-88-86, University of Edinburgh, 1988.

    Google Scholar 

  23. E. Moggi. Computational lambda-calculus and monads. In Fourth Annual Symposium on Logic in Computer Science. IEEE, 1989.

    Google Scholar 

  24. J. H. Morris. Lambda calculus models of programming languages. PhD thesis, Massachusetts Institute of Technology, 1968.

    Google Scholar 

  25. J. H. Morris and B. Wegbreit. Subgoal induction. Communications of the Association for Computing Machinery, 20:209–222, 1976.

    Google Scholar 

  26. G. Plotkin. Call-by-name, call-by-value and the lambda calculus. Theoretical Computer Science, 1:125–159, 1975.

    Article  Google Scholar 

  27. 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.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Neil D. Jones Masami Hagiya Masahiko Sato

Rights and permissions

Reprints 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

Publish with us

Policies and ethics