Advertisement

Intersection types and bounded polymorphism

  • Benjamin C. PierceEmail author
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 664)

Abstract

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.

Keywords

Intersection Type Typing Rule Elimination Rule Primitive Type Type Constructor 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. [1]
    Franco Barbanera and Mariangiola Dezani-Ciancaglini. Intersection and union types. In Ito and Meyer [21], pages 651–674.Google Scholar
  2. [2]
    H. Barendregt, M. Coppo, and M. Dezani-Ciancaglini. A filter lambda model and the completeness of type assignment. Journal of Symbolic Logic, 48(4):931–940, 1983.Google Scholar
  3. [3]
    Val Breazu-Tannen, Thierry Coquand, Carl Gunter, and Andre Scedrov. Inheritance as implicit coercion. Information and Computation, 93:172–221, 1991.Google Scholar
  4. [4]
    Kim B. Bruce. Safe type checking in a statically typed object-oriented programming languages. In Proceedings of the Twentieth ACM Symposium on Principles of Programming Languages, January 1993.Google Scholar
  5. [5]
    Kim B. Bruce and Giuseppe Longo. A modest model of records, inheritance, and bounded quantification. Information and Computation, 87:196–240, 1990. To appear in [19]. An earlier version appeared in the proceedings of the IEEE Symposium on Logic in Computer Science, 1988.Google Scholar
  6. [6]
    Luca Cardelli. A semantics of multiple inheritance. Information and Computation, 76:138–164, 1988. An earlier version appears in Semantics of Data Types, Kahn, MacQueen, and Plotkin, eds., Springer-Verlag LNCS 173, 1984.Google Scholar
  7. [7]
    Luca Cardelli. F-sub, the system. Unpublished manuscript, July 1991.Google Scholar
  8. [8]
    Luca Cardelli. Typeful programming. In E. J. Neuhold and M. Paul, editors, Formal Description of Programming Concepts. Springer-Verlag, 1991. An earlier version appeared as DEC Systems Research Center Research Report #45, February 1989.Google Scholar
  9. [9]
    Luca Cardelli. Extensible records in a pure calculus of subtyping. Research report 81, DEC Systems Research Center, January 1992. To appear in [19].Google Scholar
  10. [10]
    Luca Cardelli, Simone Martini, John C. Mitchell, and Andre Scedrov. An extension of system F with subtyping. In Ito and Meyer [21], pages 750–770.Google Scholar
  11. [11]
    Luca Cardelli and Peter Wegner. On understanding types, data abstraction, and polymorphism. Computing Surveys, 17(4), December 1985.Google Scholar
  12. [12]
    Felice Cardone and Mario Coppo. Two extensions of Curry's type inference system. In Piergiorgio Odifreddi, editor, Logic and Computer Science, number 31 in APIC Studies in Data Processing, pages 19–76. Academic Press, 1990.Google Scholar
  13. [13]
    Alonzo Church. A formulation of the simple theory of types. Journal of Symbolic Logic, 5:56–68, 1940.Google Scholar
  14. [14]
    M. Coppo and M. Dezani-Ciancaglini. A new type-assignment for λ-terms. Archiv. Math. Logik, 19:139–156, 1978.Google Scholar
  15. [15]
    Pierre-Louis Curien and Giorgio Ghelli. Coherence of subsumption: Minimum typng and type-checking in f≤. Mathematical Structures in Computer Science, 2:55–91, 1992. To appear in [19].Google Scholar
  16. [16]
    Nicolas G. de Bruijn. Lambda-calculus notation with nameless dummies: a tool for automatic formula manipulation with application to the Church-Rosser theorem. Indag. Math., 34(5):381–392, 1972.Google Scholar
  17. [17]
    Giorgio Ghelli. A static type system for message passing. In Conference on Object-Oriented Programming Systems, Languages, and Applications, pages 129–143, Phoenix, Arizona, October 1991. Distributed as SIGPLAN Notices, Volume 26, Number 11, November 1991.Google Scholar
  18. [18]
    Jean-Yves Girard. Interprétation fonctionelle et élimination des coupures de l'arithmétique d'ordre supérieur. PhD thesis, Université Paris VII, 1972.Google Scholar
  19. [19]
    Carl A. Gunter and John C. Mitchell. Theoretical Aspects of Object-Oriented Programming: Types, Semantics, and Language Design. The MIT Press, 1993. To appear.Google Scholar
  20. [20]
    Susumu Hayashi. Singleton, union and intersection types for program extraction. In Ito and Meyer [21], pages 701–730. To appear in Information and Computation.Google Scholar
  21. [21]
    T. Ito and A. R. Meyer, editors. Theoretical Aspects of Computer Software (Sendai, Japan), number 526 in Lecture Notes in Computer Science. Springer-Verlag, September 1991.Google Scholar
  22. [22]
    QingMing Ma. Parametricity as subtyping. In Proceedings of the Nineteenth ACM Symposium on Principles of Programming Languages, Albequerque, NM, January 1992.Google Scholar
  23. [23]
    John C. Mitchell. Toward a typed foundation for method specialization and inheritance. In Proceedings of the 17th ACM Symposium on Principles of Programming Languages, pages 109–124, January 1990. To appear in [19].Google Scholar
  24. [24]
    John Mitchell, Sigurd Meldal, and Neel Madhav. An extension of Standard ML modules with subtyping and inheritance. In Proceedings of the Eighteenth ACM Symposium on Principles of Programming Languages, pages 270–278, Orlando, FL, January 1991.Google Scholar
  25. [25]
    Benjamin C. Pierce. Programming with Intersection Types and Bounded Polymorphism. PhD thesis, Carnegie Mellon University, December 1991. Available as School of Computer Science technical report CMU-CS-91-205.Google Scholar
  26. [26]
    Benjamin C. Pierce. Programming with intersection types, union types, and polymorphism. Technical Report CMU-CS-91-106, Carnegie Mellon University, February 1991.Google Scholar
  27. [27]
    Benjamin C. Pierce. Bounded quantification is undecidable. Information and Computation, 1993. To appear; also to appear in [19]. Preliminary version in proceedings of POPL '91.Google Scholar
  28. [28]
    Benjamin C. Pierce and David N. Turner. Object-oriented programming without recursive types. In Proceedings of the Twentieth ACM Symposium on Principles of Programming Languages, January 1993. Also available as University of Edinburgh technical report number ECS-LFCS-92-225.Google Scholar
  29. [29]
    Garrell Pottinger. A type assignment for the strongly normalizable λ-terms. In To H. B. Curry: Essays on Combinatory Logic, Lambda Calculus, and Formalism, pages 561–577. Academic Press, New York, 1980.Google Scholar
  30. [30]
    John Reynolds. Towards a theory of type structure. In Proc. Colloque sur la Programmation, pages 408–425, New York, 1974. Springer-Verlag LNCS 19.Google Scholar
  31. [31]
    John C. Reynolds. Preliminary design of the programming language Forsythe. Technical Report CMU-CS-88-159, Carnegie Mellon University, June 1988.Google Scholar
  32. [32]
    John C. Reynolds. The coherence of languages with intersection types. In Ito and Meyer [21], pages 675–700.Google Scholar
  33. [33]
    P. Sallé. Une extension de la theorie des types en λ-calcul. pages 398–410. Springer-Verlag, 1982. Lecture Notes in Computer Science No. 62.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1993

Authors and Affiliations

  1. 1.INRIA, Projet FormelLe Chesnay CedexFrance

Personalised recommendations