Three Approaches to Type Structure

We examine three disparate views of the type structure of programming languages: Milner's type deduction system and polymorphic let construct, the theory of subtypes and generic operators, and the polymorphic or second-order typed lambda calculus. These approaches are illustrated with a functional language including product, sum and list constructors. The syntactic behavior of types is formalized with type inference rules, but their semantics is treated intuitively.

[1]  Frank J. Oles,et al.  A category-theoretic approach to the semantics of programming languages , 1982 .

[2]  Daniel Leivant Reasoning about functional programs and complexity classes associated with type disciplines , 1983, 24th Annual Symposium on Foundations of Computer Science (sfcs 1983).

[3]  Neil D. Jones Semantics-Directed Compiler Generation , 1980, Lecture Notes in Computer Science.

[4]  D. Kapur TOWARDS A THEORY FOR ABSTRACT DATA TYPES , 1980 .

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

[6]  Gordon Plotkin,et al.  Semantics of Data Types , 1984, Lecture Notes in Computer Science.

[7]  John C. Reynolds,et al.  Using category theory to design implicit conversions and generic operators , 1980, Semantics-Directed Compiler Generation.

[8]  Mariangiola Dezani-Ciancaglini,et al.  A filter lambda model and the completeness of type assignment , 1983, Journal of Symbolic Logic.

[9]  Butler W. Lampson,et al.  A Kernel Language for Abstract Data Types and Modules , 1984, Semantics of Data Types.

[10]  Peter Henderson,et al.  A lazy evaluator , 1976, POPL.

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

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

[13]  John C. Reynolds,et al.  Polymorphism is not Set-Theoretic , 1984, Semantics of Data Types.

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

[15]  John C. Reynolds,et al.  Types, Abstraction and Parametric Polymorphism , 1983, IFIP Congress.

[16]  Corrado Böhm,et al.  Automatic Synthesis of Typed Lambda-Programs on Term Algebras , 1985, Theor. Comput. Sci..

[17]  Nancy McCracken,et al.  The Typechecking of Programs with Implicit Type Structure , 1984, Semantics of Data Types.

[18]  John McCarthy,et al.  Recursive Functions of Symbolic Expressions , 1983 .

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

[20]  Frank J. Oles,et al.  Type Algebras, Functor Categories, and Block Structure , 1986 .

[21]  Per Martin-Löf,et al.  Constructive mathematics and computer programming , 1984 .

[22]  J. Y. Girard,et al.  Interpretation fonctionelle et elimination des coupures dans l'aritmetique d'ordre superieur , 1972 .

[23]  E. Lohse,et al.  A Correspondence Between ALGOL 60 and Church's Lambda- Notation: Part I* , 1965 .

[24]  Nancy J. McCracken A finitary retract model for the polymorphic lambda-calculus , 1982 .

[25]  Daniel P. Friedman,et al.  CONS Should Not Evaluate its Arguments , 1976, ICALP.

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

[27]  Mariangiola Dezani-Ciancaglini,et al.  A new type assignment for λ-terms , 1978, Arch. Math. Log..

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

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

[30]  Robert L. Constable,et al.  The Type Theory of PL/CV3 , 1984, TOPL.

[31]  Daniel Leivant,et al.  Polymorphic type inference , 1983, POPL '83.

[32]  Daniel Leivant,et al.  The Expressiveness of Simple and Second-Order Type Structures , 1983, JACM.