Abstract
We present a tentative theory of programming language expressiveness based on reductions (language translations) that preserve observational equivalence. These are called “abstraction-preserving” because of a connection with a definition of “abstraction” or “information-hiding” mechanism. If there is an abstraction-preserving reduction from one language to another, then essentially every function on natural numbers that is definable in the first is also definable in the second. Moreover, regardless of the set of first-order functions definable in either language, no programming language with an abstraction mechanism can be reduced to a language without. Since Lisp with user-defined special forms does not have an abstraction mechanism, it is therefore not “universal” in this theory, in spite of the ability to define every partial recursive function on the natural numbers. Several examples and counter-examples to abstraction-preserving reductions are given. We do not know whether there is a natural universal language with respect to abstraction-preserving reduction.
Supported in part by an NSF PYI Award, matching funds from Digital Equipment Corporation, the Powell Foundation, and Xerox Corporation; NSF grant CCR-8814921 and the Wallace F. and Lucille M. Davis Faculty Scholarship.
This is a preview of subscription content, log in via an institution.
Preview
Unable to display preview. Download preview PDF.
References
L. Cardelli and P. Wegner. On understanding types, data abstraction, and polymorphism. Computing Surveys, 17(4):471–522, 1985.
M. Felleisen. On the expressive power of programming languages. In Proc. European Symp. on Programming, pages 134–151. Springer-Verlag LNCS 432, 1990.
S. Greibach. Theory of Program Structures: Schemes, Semantics, Verification, volume 36 of Lecture Notes in Computer Science. Springer-Verlag, 1975.
S. Kleene. Introduction to Metamathematics. Van Nostrand, New York, 1952.
D. MacQueen. Using dependent types to express modular structure. In Proc. 13-th ACM Symp. on Principles of Programming Languages, pages 277–286, 1986.
P. Martin-Löf. Intuitionistic Type Theory. Bibliopolis, Napoli, 1984.
R. Milner. Fully abstract models of typed lambda calculi. Theoretical Computer Science, 4(1), 1977.
J. Mitchell. Representation independence and data abstraction. In Proc. 13-th ACM Symp. on Principles of Programming Languages, pages 263–276, January 1986.
J. Mitchell. Type systems for programming languages. In J. van Leeuwen, editor, Handbook of Theoretical Computer Science, Volume B, pages 365–458. North-Holland, 1990.
J. Mitchell and R. Harper. The essence of ML. In Proc. 15-th ACM Symp. on Principles of Programming Languages, pages 28–46, January 1988.
J. Mitchell and G. Plotkin. Abstract types have existential types. ACM Trans. on Programming Languages and Systems, 10(3):470–502, 1988. Preliminary version appeared in Proc. 12-th ACM Symp. on Principles of Programming Languages, 1985.
K. Mulmuley. Full abstraction and semantic equivalence. The MIT Press, 1987.
M. Paterson and C. Hewitt. Comparative schematology. In Proj. MAC Conf. on Concurrent Systems and Parallel Computation. MIT, 1970.
G. Plotkin. LCF considered as a programming language. Theoretical Computer Science, 5:223–255, 1977.
J. Reynolds. Types, abstraction, and parametric polymorphism. In Information Processing '83, pages 513–523, Amsterdam, 1983. North-Holland.
J. Riecke. Fully abstract translations between functional languages. In Proc. 17-th ACM Symp. on Principles of Programming Languages, pages 245–254, January 1990.
R. Statman. Logical relations and the typed lambda calculus. Information and Control, 65:85–97, 1985.
A. Stoughton. Fully Abstract Models of Programming Languages. Pitman/John Wiley and Sons, 1988.
P. Winston and B. Horn. Lisp. Addison-Wesley, 1981.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1991 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Mitchell, J.C. (1991). On abstraction and the expressive power of programming languages. In: Ito, T., Meyer, A.R. (eds) Theoretical Aspects of Computer Software. TACS 1991. Lecture Notes in Computer Science, vol 526. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-54415-1_51
Download citation
DOI: https://doi.org/10.1007/3-540-54415-1_51
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-54415-9
Online ISBN: 978-3-540-47617-7
eBook Packages: Springer Book Archive