An ideal model for recursive polymorphic types

When constants are added to the pure lambda calculus, run-time errors can occur if the constants are used improperly, for example, if an at tempt is made to apply a natural number as if it were a function or if the first argument of a conditional is not a truth value. We consider "types" as somehow being or generating constraints on expressions. A consistent type discipline ensures that any expression satisfying the constraints will not produce a "run-time error."

[1]  S. Banach Sur les opérations dans les ensembles abstraits et leur application aux équations intégrales , 1922 .

[2]  J. A. Robinson,et al.  A Machine-Oriented Logic Based on the Resolution Principle , 1965, JACM.

[3]  Donald Ervin Knuth,et al.  The Art of Computer Programming , 1968 .

[4]  James H. Morris,et al.  Lambda-calculus models of programming languages. , 1969 .

[5]  R. Hindley The Principal Type-Scheme of an Object in Combinatory Logic , 1969 .

[6]  John C. Reynolds,et al.  Towards a theory of type structure , 1974, Symposium on Programming.

[7]  Wilson A. Sutherland,et al.  Introduction to Metric and Topological Spaces , 1975 .

[8]  Peter Henderson An Approach to Compile-Time Type Checking , 1977, IFIP Congress.

[9]  Gordon D. Plotkin,et al.  The category-theoretic solution of recursive domain equations , 1977, 18th Annual Symposium on Foundations of Computer Science (sfcs 1977).

[10]  William W. Wadge,et al.  Data Types as Objects , 1977, ICALP.

[11]  Donald E. Knuth,et al.  The art of computer programming: V.1.: Fundamental algorithms , 1997 .

[12]  F. L. Morris On List Structures and Their Use in the Programming of Unification , 1978 .

[13]  Robin Milner,et al.  A Theory of Type Polymorphism in Programming , 1978, J. Comput. Syst. Sci..

[14]  Nancy Jean Mccracken,et al.  An investigation of a programming language with a polymorphic type structure. , 1979 .

[15]  Maurice Nivat,et al.  Metric Interpretations of Infinite Trees and Semantics of non Deterministic Recursive Programs , 1980, Theor. Comput. Sci..

[16]  G. Pottinger,et al.  A type assignment for the strongly normalizable |?-terms , 1980 .

[17]  Rod M. Burstall,et al.  HOPE: An experimental applicative language , 1980, LISP Conference.

[18]  Mariangiola Dezani-Ciancaglini,et al.  An extension of the basic functionality theory for the λ-calculus , 1980, Notre Dame J. Formal Log..

[19]  J. W. de Bakker,et al.  Denotational semantics of concurrency , 1982, STOC '82.

[20]  Robin Milner,et al.  Principal type-schemes for functional programs , 1982, POPL '82.

[21]  J. W. de Bakker,et al.  Processes and the Denotational Semantics of Concurrency , 1982, Inf. Control..

[22]  Ravi Sethi,et al.  A semantic model of types for applicative languages , 1982, LFP '82.

[23]  Henk Barendregt,et al.  The Lambda Calculus: Its Syntax and Semantics , 1985 .

[24]  Robert Cartwright,et al.  Types as intervals , 1985, POPL.

[25]  John C. Reynolds,et al.  Three Approaches to Type Structure , 1985, TAPSOFT, Vol.1.

[26]  Mario Coppo,et al.  A Completeness Theorem for Recursively Defined Types , 1985, ICALP.

[27]  John C. Mitchell,et al.  Abstract types have existential types , 1985, POPL.