Skip to main content
×
×
Home

Equivalence in functional languages with effects

  • Ian Mason (a1) and Carolyn Talcott (a1)
Abstract

Traditionally the view has been that direct expression of control and store mechanisms and clear mathematical semantics are incompatible requirements. This paper shows that adding objects with memory to the call-by-value lambda calculus results in a language with a rich equational theory, satisfying many of the usual laws. Combined with other recent work, this provides evidence that expressive, mathematically clean programming languages are indeed possible.

Copyright
References
Hide All
Abramsky, S. 1990. The lazy lambda calculus. In Turner, D. A. (editor), Research Topics in Functional Programming. Addison-Wesley.
Agha, A. 1986. Actors: A Model of Concurrent Computation in Distributed Systems. MIT Press.
Barendregt, H. 1981. The lambda calculus: its syntax and semantics. North-Holland.
Boehm, H.-J. 1985. Side effects and aliasing can have simple axiomatic descriptions. ACM TOPLAS, 7 (4).
Demers, A. and Donahue, J. 1983. Making variables abstract: an equational theory for Russell. In 10th ACM Symposium on Principles of Programming Languages,ACM.
Feferman, S. 1985. A theory of variable types. Revista Colombiana de Matématicas, 19.
Feferman, S. 1990. Polymorphic typed lambda-calculi in a type-free axiomatic framework. In Logic and Computation (vol. 104) Contemporary Mathematics. A.M.S.
Felleisen, M. 1987. The Calcului of Lambda-v-cs Conversion: A Syntactic Theory of Control and State in Imperative Higher-order Programming Languages. PhD thesis, Indiana University, USA.
Felleisen, M. and Hieb, R. 1989. The revised report on the syntactic theories of sequential control and state. Technical Report COMP TR89-100, Rice University, USA.
Guzmán, J. C. and Hudak, P. 1990. Single-threaded polymorphic lambda calculus. In Fifth Ann. Symposium on Logic in Computer Science.IEEE Press.
Hewitt, C. 1977. Viewing control structures as patterns of passing messages. J. Artificial Intelligence, 8 (3).
Howe, D. 1989. Equality in the lazy lambda calculus. In Fourth Ann. Symposium on Logic in Computer Science.IEEE Press.
McCarthy, J., Abrahams, P., Edwards, D., Hart, T. and Levin, M. 1962. Lisp 1.5 Programmer's Manual. MIT Press.
Landin, P. J. 1964. The mechanical evaluation of expressions. Computer J., 6: 308320.
Lucassen, J. M. 1987. Types and Effects, towards the integration of functional and imperative programming. PhD thesis, MIT, USA.
Lucassen, J. M. and Gifford, D. K. 1988. Polymorphic effect systems. In Conf. record 16th Ann. ACM symposium on principles of programming languages, 4757, ACM.
Mason, I. A. 1986. The Semantics of Destructive Lisp. PhD thesis, Stanford University, USA.
Mason, I. A. 1988. Verification of programs that destructively manipulate data. Sci. of Computer Programming, 10.
Mason, I. A. and Talcott, C. L. 1989 a. Axiomatizing operational equivalence in the presence of side effects. In Fourth Ann. Symposium on Logic in Computer Science.IEEE Press.
Mason, I. A. and Talcott, C. L. 1989 b. Programming, transforming, and proving with function abstractions and memories. In Proc. 16th EATCS Colloquium on Automata, Languages, and Programming, Stresa, Italy. Volume 372 of Lecture Notes in Computer Science, Springer-Verlag.
Mason, I. A. and Talcott, C. L. 1989 c. A sound and complete axiomatization of operational equivalence between programs with memory. Technical Report STAN-CS-89-1250, Department of Computer Science, Stanford University, USA.
Mason, I. A. and Talcott, C. L. Inferring the equivalence of functional programs that mutate data. To appear (a) in Theor. Comput. Sci.
Mason, I. A. and Talcott, C. L. Syntactic semantics. In preparation.
Mason, I. A. and Talcott, C. L. Program transformation for configuring components. To appear (b) ACM Sigplan Symposium on Partial Evaluation and Semantics Based Program Manipulation. PEPM91.
Mason, I. A. and Talcott, C. L. Program transformation via constraint propagation. To appear (c).
Mason, I. A. and Talcott, C. L. 1990. Reasoning about programs with effects. In Programming Language Implementation and Logic Programming, PLILP'90. Volume 456 of Lecture Notes in Computer Science, Springer-Verlag.
Moggi, E. 1989. Computational lambda-calculus and monads. In Fourth Ann. Symposium on Logic in Computer Science.IEEE Press.
Moggi, E. 1990. An abstract view of programming languages. Technical Report ECS-LFCS-90- 113, Laboratory for foundations of computer science, University of Edinburgh, UK.
Morris, J. H. 1968. Lambda calculus models of programming languages. PhD thesis, Massachusetts Institute of Technology, USA.
Mosses, P. 1984. A basic abstract semantic algebra. In Semantics of data types, international symposium, Sophia-Antipolis, France. Volume 173 of Lecture Notes in Computer Science, Springer-Verlag.
Nelson, C. G. and Oppen, D. C. 1977. Fast decision procedures based on congruence closure. Technical Report STAN-CS-77-647, Department of Computer Science, Stanford University, USA.
Oppen, D. C. 1978. Reasoning about recursively defined data structures. Technical Report STAN-CS-78-678, Department of Computer Science, Stanford University, USA.
Plotkin, G. 1975. Call-by-name, call-by-value and the lambda-v-calculus. Theor. Comput. Sci., 1.
Reddy, U., Swarup, V. and Ireland, E. 1990. Assignments for applicative languages. Unpublished Manuscript, Department of Computer Science, University of Illinois, USA.
Reynolds, J. C. 1972. Definitional interpreters for higher-order programming languages. In Proc. ACM Nat. Convention, ACM.
Reynolds, J. C. 1989. Syntactic control of interference, II. Proc. 16th EATCS Colloquium on Automata, Languages, and Programming,Stresa, Italy. Volume 372 of Lecture Notes in Computer Science, Springer-Verlag.
Smith, S. F. From operational to denotational semantics. Technical Report 89-12, Department of Computer Science, The Johns Hopkins University, USA. To appear in the Proceedings of the 7th Conference on the Mathematical Foundations of Programming Semantics,MFPS91 LNCS Springer Verlag.
Steele, G. L. and Sussman, G. J. 1975. Scheme, an interpreter for extended lambda calculus. Technical Report 349, Massachusetts Institute of Technology, USA.
Talcott, C. L. 1985. The Essence of Rum: A Theory of the Intensional and Extensional Aspects of Lisp-Type Computation. PhD thesis, Stanford University, USA.
Talcott, C. L. 1989. Programming and proving function and control abstractions. Technical Report STAN-CS-89-1288, Stanford University Computer Science Department, USA.
Talcott, C. L. 1990. A theory for program and data specification. Design and Implementation of Symbolic Computation Systems, DISCO'90. Volume 429 of Lecture Notes in Computer Science, Springer-Verlag.
Wadler, P. 1990. Linear types can change the world! In IFIP Working Conf. Programming Concepts and Methods, Sea of Gallilee, Israel.
Yonezawa, A. (editor). 1990. ABCL: An Object-Oriented Concurrent System. MIT Press.
Recommend this journal

Email your librarian or administrator to recommend adding this journal to your organisation's collection.

Journal of Functional Programming
  • ISSN: 0956-7968
  • EISSN: 1469-7653
  • URL: /core/journals/journal-of-functional-programming
Please enter your name
Please enter a valid email address
Who would you like to send this to? *
×

Metrics

Full text views

Total number of HTML views: 0
Total number of PDF views: 0 *
Loading metrics...

Abstract views

Total abstract views: 0 *
Loading metrics...

* Views captured on Cambridge Core between <date>. This data will be updated every 24 hours.

Usage data cannot currently be displayed

Equivalence in functional languages with effects

  • Ian Mason (a1) and Carolyn Talcott (a1)
Submit a response

Discussions

No Discussions have been published for this article.

×

Reply to: Submit a response


Your details


Conflicting interests

Do you have any conflicting interests? *