Skip to main content

Intersection types and bounded polymorphism

  • Conference paper
  • First Online:
Typed Lambda Calculi and Applications (TLCA 1993)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 664))

Included in the following conference series:

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.

This research was sponsored in part by the Avionics Laboratory, Wright Research and Development Center, Aeronautical Systems Division (AFSC), U. S. Air Force, Wright-Patterson AFB, OH 45433-6543 under Contract F33615-90-C-1465, Arpa Order No. 7597; in part by the Office of Naval Research under Contract N00013-84-K-0415; in part by the National Science Foundation under Contract CCR-8922109; in part by Siemens; in part by the Laboratory for Foundations of Computer Science, University of Edinburgh; and in part by Esprit Basic Research Action Types.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Franco Barbanera and Mariangiola Dezani-Ciancaglini. Intersection and union types. In Ito and Meyer [21], pages 651–674.

    Google Scholar 

  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. Val Breazu-Tannen, Thierry Coquand, Carl Gunter, and Andre Scedrov. Inheritance as implicit coercion. Information and Computation, 93:172–221, 1991.

    Google Scholar 

  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. 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. 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. Luca Cardelli. F-sub, the system. Unpublished manuscript, July 1991.

    Google Scholar 

  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. 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. 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. Luca Cardelli and Peter Wegner. On understanding types, data abstraction, and polymorphism. Computing Surveys, 17(4), December 1985.

    Google Scholar 

  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. Alonzo Church. A formulation of the simple theory of types. Journal of Symbolic Logic, 5:56–68, 1940.

    Google Scholar 

  14. M. Coppo and M. Dezani-Ciancaglini. A new type-assignment for λ-terms. Archiv. Math. Logik, 19:139–156, 1978.

    Google Scholar 

  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. 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. 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. 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. 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. 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. 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. QingMing Ma. Parametricity as subtyping. In Proceedings of the Nineteenth ACM Symposium on Principles of Programming Languages, Albequerque, NM, January 1992.

    Google Scholar 

  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. 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. 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. 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. 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. 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. 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. 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. John C. Reynolds. Preliminary design of the programming language Forsythe. Technical Report CMU-CS-88-159, Carnegie Mellon University, June 1988.

    Google Scholar 

  32. John C. Reynolds. The coherence of languages with intersection types. In Ito and Meyer [21], pages 675–700.

    Google Scholar 

  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 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Benjamin C. Pierce .

Editor information

Marc Bezem Jan Friso Groote

Rights and permissions

Reprints and permissions

Copyright information

© 1993 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Pierce, B.C. (1993). Intersection types and bounded polymorphism. In: Bezem, M., Groote, J.F. (eds) Typed Lambda Calculi and Applications. TLCA 1993. Lecture Notes in Computer Science, vol 664. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0037117

Download citation

  • DOI: https://doi.org/10.1007/BFb0037117

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-56517-8

  • Online ISBN: 978-3-540-47586-6

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics