Intersection Types and Bounded Polymorphism

Intersection types and bounded quantification are complementary extensions of first-order a statically typed programming language with subtyping. We define a typed λ-calculus combining these extensions, illustrate its properties, and develop proof-theoretic results leading to algorithms for subtyping and typechecking.

[1]  Alonzo Church,et al.  A formulation of the simple theory of types , 1940, Journal of Symbolic Logic.

[2]  Mariangiola Dezani-Ciancaglini,et al.  Intersection and Union Types: Syntax and Semantics , 1995, Inf. Comput..

[3]  Kim B. Bruce Safe type checking in a statically-typed object-oriented programming language , 1993, POPL '93.

[4]  John C. Mitchell,et al.  Theoretical aspects of object-oriented programming: types, semantics, and language design , 1994, Choice Reviews Online.

[5]  John C. Reynolds,et al.  Preliminary design of the programming language Forsythe , 1988 .

[6]  QingMing Ma,et al.  Parametricity as subtyping , 1992, POPL '92.

[7]  Kim B. Bruce,et al.  A Modest Model of Records, Inheritance and Bounded Quantification , 1990, Inf. Comput..

[8]  John C. Reynolds,et al.  The Coherence of Languages with Intersection Types , 1991, TACS.

[9]  Luca Cardelli,et al.  Extensible records in a pure calculus of subtyping , 1994 .

[10]  Giorgio Ghelli A static type system for message passing , 1991, OOPSLA 1991.

[11]  de Ng Dick Bruijn Lambda calculus notation with nameless dummies, a tool for automatic formula manipulation, with application to the Church-Rosser theorem , 1972 .

[12]  Giorgio Ghelli,et al.  Coherence of Subsumption, Minimum Typing and Type-Checking in F<= , 1992, Math. Struct. Comput. Sci..

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

[14]  Susumu Hayashi Singleton, Union and Intersection Types for Program Extraction , 1994, Inf. Comput..

[15]  John C. Mitchell,et al.  An extension of standard ML modules with subtyping and inheritance , 1991, POPL '91.

[16]  P. Sallé Une extension de la theorie des types en λ-calcul , 1978 .

[17]  Luca Cardelli,et al.  An Extension of System F with Subtyping , 1994, Inf. Comput..

[18]  Thierry Coquand,et al.  Inheritance as Implicit Coercion , 1991, Inf. Comput..

[19]  Mariangiola Dezani-Ciancaglini,et al.  Intersection and Union Types , 1991, TACS.

[20]  F. Cardone,et al.  Two extensions of Curry's type inference system , 1990 .

[21]  Luca Cardelli,et al.  On understanding types, data abstraction, and polymorphism , 1985, CSUR.

[22]  Benjamin C. Pierce,et al.  Object-oriented programming without recursive types , 1993, POPL '93.

[23]  B. Pierce Programming with intersection types and bounded polymorphism , 1992 .

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

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

[26]  Luca Cardelli,et al.  A Semantics of Multiple Inheritance , 1984, Information and Computation.

[27]  B. Pierce Programming with intersection types, union types, and polymorphism , 1991 .

[28]  John C. Mitchell Toward a typed foundation for method specialization and inheritance , 1989, POPL '90.

[29]  Benjamin C. Pierce,et al.  Bounded Quantification is Undecidable , 1994, Inf. Comput..