ACM Home Page
Please provide us with feedback. Feedback
The essence of ML
Full text PdfPdf (2.03 MB)
Source Annual Symposium on Principles of Programming Languages archive
Proceedings of the 15th ACM SIGPLAN-SIGACT symposium on Principles of programming languages table of contents
San Diego, California, United States
Pages: 28 - 46  
Year of Publication: 1988
ISBN:0-89791-252-7
Authors
J. C. Mitchell  AT&T Bell Laboratories, Murray Hill, NJ
R. Harper  Edinburgh University, Edinburgh, Scotland
Sponsors
SIGPLAN: ACM Special Interest Group on Programming Languages
SIGACT: ACM Special Interest Group on Algorithms and Computation Theory
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 5,   Downloads (12 Months): 27,   Citation Count: 24
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/73560.73563
What is a DOI?

ABSTRACT

Standard ML is a useful programming language with polymorphic expressions and a flexible module facility. One notable feature of the expression language is an algorithm which allows type information to be omitted. We study the implicitly-typed expression language by giving a “syntactically isomorphic” explicitly-typed, polymorphic function calculus. Unlike the Girard-Reynolds polymorphic calculus, for example, the types of our ML calculus may be built-up by induction on type levels (universes). For this reason, the pure ML calculus has straightforward set-theoretic, recursion-theoretic and domain-theoretic semantics, and operational properties such as the termination of all recursion-free programs may be proved relatively simply. The signatures, structures, and functors of the module language are easily incorporated into the typed ML calculus, providing a unified framework for studying the major features of the language (including the novel “sharing constraints” on functor parameters). We show that, in a precise sense, the language becomes inconsistent if restrictions imposed by type levels are relaxed. More specifically, we prove that the important programming features of ML cannot be added to any impredicative language, such as the Girard-Reynolds calculus, without implicitly assuming a type of all types.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
ABL86
R. Amadio, K. Bruce, and G. Longo. The finitary projection model for second order lambda calculus and solutions to higher order domain, equations. In IEEE Symp. Logic in Computer Science, pages }22- 130, 1986.
 
Bar84
H.P. Barendregt. The Lambda Calculus: Its Syntax and Semantics. North Holland, 198,i. (revised edition).
 
BM84
 
BMM88
 
C*86
 
Car84
Car85
 
CH84
T. Coquand and G. Huet. A theory of constructions. In Proc. Int. Symp. on Semantics of Data Types, Sophia-Antipolis (France), Springer LNCS 173, June 1984. Paper does not appear in proceedings.
 
Coq86
T. Coquand. An analysis of girard's paradox. In Proc. IEEE Symp. on Logic in Computer Science, pages 227-236, June 1986.
CW86
 
CZ86
M. Coppo and M. Zacchi. Type inference and logical relations. In Proc. IEEE Syrup. on Logic in Computer Science, pages 218-226, June 1986.
 
DB80
N.G. De Bruijn. A survey of the project automath. In To H.B. Curry: Essays on Combinatory Logic, Lambda Calculus and Formalism, pages 579-607, Academic Press, 1980.
DM82
 
FS87
P. Freyd and A. Scedrov. Some semantic aspects of polymorphic lambda calculus. In IEEE Syrup. Logic in Computer Science, pages 315-319, June } 987.
 
Gir71
J.-Y. Girard. Une extension de l'interpretation de G6del ~ l'analyse, et son application l'~limination des coupures dans l'analyse et la th@orie des types. In J.E. Fenstad, editor, 2nd Scandinavian Logic Symposium, pages 63-92, North-Holland, 1971.
 
Gir72
J.-Y. Girard. Interpretation fonctionelte et elimination des coupures de l'arithmetique d'ordre superieur. These D'Etat, Universite Paris VII, }972.
 
GMW79
M.J. Gordon, R. Milner, and C.P. Wadsworth. Edinburgh LCF. Volume 78 of Lecture Notes in Computer Science, Springer-Verlag, } 979.
 
Gor79
 
HH86
 
HMM86
R. Harper, D.B. MacQueen, and R. Milnet. Standard ML. Technical Report ECS-LFCS-86-2, Laboratory for the Foundations of Computer Science, Edinburgh University, March }986.
 
HMT87a
R. Harper, R. Milner, and M. Tof~e. The Semantics of Standard ML. Technical Report ECS-LFCS-87-36, Laboratory for the Foundations of Computer Science, Edinburgh University, August 1987.
 
HMT87b
 
How80
W. Howard. The formulas-as-types notion of construction. In To H.B. Curry: Essays on Combinatory Logic, Lambda- Calculus and Formalism, pages 479-490, Academic Press, 1980.
 
How87
D.J. Howe. The computational behavior of girard's paradox. In IEEE Symp. Logic in Computer Science, pages 205- 214, June 1987.
Lei83
 
LS86
 
Mac71
S. MacLane. Categories for the Working Mathematician. Volume 5 of Graduate Texts in Mathematics, Springer-Verlag, 1971.
Mac85
Mac86
 
Mar73
P. Martin-LSf. An intuitionistic theory of types: predicative part. In H. E. Rose and J. C. Shepherdson, editors, Logic Colloquium, '73, pages 73-118, North-Holland, Amsterdam, 1973.
 
Mar82
P. Martin-LSf. Constructive mathematics and computer programming. In Sixth International Congress for Logic, Methodology, and Philosophy of Science, pages 153-175, North-Holland, Amsterdam, 1982.
 
McC79
 
Mil77
R. Milner. Fully abstract models of typed lambda calculi. Theoretical Computer Science, 4 (1), 1977.
 
Mil78
R. Milner. A theory of type polymorphism in programming. JCSS, 17, 1978. pages 348-375.
 
Mil85
R. Milner. The standard ml core language. Polymorphism, 2(2), 1985. 28 pages. An earlier version appeared in Proc. 1984 ACM Symp. on Lisp and Functional Programming.
Mit86a
Mit86b
 
Mit87
 
MM85
MP85
 
MPS86
MR86
 
Mul84
K. Mulmuley. A semantic characterization of full abstraction for typed lambda calculus. In Proc. 25-th IEEE Syrup. on Foundations of Computer Science, pages 279-288, 1984.
 
Plo75
G.D. Plotkin. Call-by-name, call-byvalue, and the lambda calculus. Theoretical Computer Science, 1:125-159, } 975.
 
Plo77
G.D. Plotkin. Lcf considered as a programming language. Theoretical Computer oczence, 1"3~ 1977.
 
Rey74
 
Rey81
J.C. Reynolds. The essence of algol. In de Bakker and van Vliet, editors, Algorithmic Languages, pages 345-372, IFIP, North Holland, 1981.
 
Rey83
J.C. Reynolds. Types, abstraction, and parametric polymorphism. In Information Processing '83, pages 513-523, North-Holland, Amsterdam, 1983.
 
Rey84
J.C. Reynolds. Polymorphism is not settheoretic. In Proc. Int. Symp. on Semantics of Data Types, Sophia-A ntipolis (France), Springer LNCS 173, pages 145- 156, Springer-Verlag, 1984.
 
Sco80
D.S. Scott. Relating theories of the lambda calculus. In To H.B. Curry: Essays on Combinatory Logic, Lambda Calculus and Formalism, pages 403-450, Academic Press, 1980.
Sol78
 
Sta85
R. Statman. Logical relations and the typed lambda calculus. Information and Control, 65:85-97, 1985.
 
Tro73
A.S. Troelstra. Mathematical Investigation of Intuitionistic Arithmetic and Analysis. Volume 344 of Lecture Notes in Mathematics, Springer-Vertag, 1973.
Wan84

CITED BY  24

Collaborative Colleagues:
J. C. Mitchell: colleagues
R. Harper: colleagues