On the expressive power of programming languages

  • Matthias Felleisen
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 432)


The literature on programming languages contains an abundance of informal claims on the relative expressive power of programming languages, but there is no framework for formalizing such statements nor for deriving interesting consequences. As a first step in this direction, we develop a formal notion of expressiveness and investigate its properties. To demonstrate the theory's closeness to published intuitions on expressiveness, we analyze the expressive power of several extensions of functional languages. Based on these results, we believe that our system correctly captures many of the informal ideas on expressiveness, and that it constitutes a good basis for further research in this direction.


Programming Language Pure Scheme Operational Semantic Expressive Power Formal Framework 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

6 References

  1. 1.
    Barendregt, H.P. The Lambda Calculus: Its Syntax and Semantics. Revised edition. Studies in Logic and the Foundations of Mathematics 103. North-Holland, Amsterdam, 1984.Google Scholar
  2. 2.
    Chandra, A.K. and Z. Manna. The power of programming features. Journal of Computer Languages (Pergamon Press) 1, 1975, 219–232.CrossRefGoogle Scholar
  3. 3.
    Felleisen, M. and D.P. Friedman. A syntactic theory of sequential state. Theor. Comput. Sci. 69(sn3), 1989, 243–287. Preliminary version in: Proc. 14th ACM Symposium on Principles of Programming Languages, 1987, 314–325.CrossRefGoogle Scholar
  4. 4.
    Felleisen, M. and R. Hieb. The revised report on the syntactic theories of sequential control and state. Technical Report 100, Rice University, June 1989.Google Scholar
  5. 5.
    Felleisen, M., D.P. Friedman, E. Kohlbecker, and B. Duba. A syntactic theory of sequential control. Theor. Comput. Sci. 52(3), 1987, 205–237. Preliminary version in: Proc. Symposium on Logic in Computer Science, 1986, 131–141.CrossRefGoogle Scholar
  6. 6.
    Goguen, J., J. Thatcher, and E. Wagner. An initial algebra approach to the specification, correctness, and implementation of abstract data types. In Current Trends in Programming Methodology IV, edited by R. Yeh. Prentice-Hall, Englewood Cliffs, New Jersey, 1979, 80–149.Google Scholar
  7. 7.
    Griffin, T. Notational definition—A formal account. In Proc. Symposium on Logic in Computer Science, 1988, 372–383.Google Scholar
  8. 8.
    Kleene, S. C. Introduction to Metamathematics, Van Nostrand, New York, 1952.Google Scholar
  9. 9.
    Kohlbecker, E. Syntactic Extensions in the Programming Language Lisp. Ph.D. dissertation, Indiana University, 1986.Google Scholar
  10. 10.
    Landin, P.J. The next 700 programming languages. Commun. ACM 9(3), 1966, 157–166.CrossRefGoogle Scholar
  11. 11.
    Meyer, A.R. and J.R. Riecke. Continuations may be unreasonable. In Proc. 1988 Conference on Lisp and Functional Programming, 1988, 63–71.Google Scholar
  12. 12.
    Morris, J.H. Lambda-Calculus Models of Programming Languages. Ph.D. dissertation, MIT, 1968.Google Scholar
  13. 13.
    Ong, L C.-H. Fully abstract models of the lazy lambda-calculus. In Proc. 29th Symposium on Foundation of Computer Science, 1988, 368–376.Google Scholar
  14. 14.
    Paterson, M.S. and C.E. Hewitt. Comparative schematology. In Conf. Rec. ACM Conference on Concurrent Systems and Parallel Computation, 1970, 119–127.Google Scholar
  15. 15.
    Plotkin, G.D. LCF considered as a programming language. Theor. Comput. Sci. 5, 1977, 223–255.CrossRefGoogle Scholar
  16. 16.
    Plotkin, G.D. Call-by-name, call-by-value, and the λ-calculus. Theor. Comput. Sci. 1, 1975, 125–159.CrossRefGoogle Scholar
  17. 17.
    Reynolds, J.C. GEDANKEN—A simple typeless language based on the principle of completeness and the reference concept. Commun. ACM 13(5), 1970, 308–319.CrossRefGoogle Scholar
  18. 18.
    Reynolds, J.C. The essence of Algol. In Algorithmic Languages, edited by de Bakker and van Vliet. North-Holland, Amsterdam, 1981, 345–372.Google Scholar
  19. 19.
    Steele, G.L., Jr. and G.J. Sussman. Lambda: The ultimate imperative. Memo 353, MIT AI Lab, 1976.Google Scholar
  20. 20.
    Sussman, G.J. and G.L. Steele Jr. Scheme: An interpreter for extended lambda calculus. Memo 349, MIT AI Lab, 1975.Google Scholar
  21. 21.
    Troelstra, A. S. Metamathematical Investigation of Intuitionistic Arithmetic and Analysis. Lecture Notes in Mathematics 344. Springer-Verlag, Berlin, 1973.Google Scholar
  22. 22.
    Williams, J.G. On the formalization of semantic conventions. Draft version: September 1988. To appear in Journal of Symbolic logic, 1990.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1990

Authors and Affiliations

  • Matthias Felleisen
    • 1
  1. 1.Department of Computer ScienceRice UniversityHouston

Personalised recommendations