From classes to objects via subtyping

  • Didier Rémy
Regular Papers
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1381)

Abstract

We extend the Abadi-Cardelli calculus of primitive objects with object extension. We enrich object types with a more precise, uniform, and flexible type structure. This enables to type object extension under both width and depth subtyping. Objects may also have extend-only or virtual contra-variant methods and read-only co-variant methods. The resulting subtyping relation is richer, and types of objects can be weaken progressively from a class level to a more traditional object level along the subtype relationship.

References

  1. 1.
    Martín Abadi and Luca Cardelli. A theory of primitive objects: Untyped and first-order systems. In Theoretical Aspects of Computer Software, pages 296–320. Springer-Verlag, April 1994.Google Scholar
  2. 2.
    Martín Abadi and Luca Cardelli. A theory of primitive objects: Second-order systems. Science of Computer Programming, 25(2–3):81–116, December 1995. Preliminary version appeared in D. Sanella, editor, Proceedings of European Symposium on Programming, pages 1–24. Springer-Verlag, April 1994.MathSciNetCrossRefGoogle Scholar
  3. 3.
    Martin Abadi and Luca Cardelli. A theory of objects. Springer, 1996.Google Scholar
  4. 4.
    V. Bono, M. Bugliesi, M. Dezani-Ciancaglini, and L. Liquori. Subtyping Constraints for Incomplete Objects. In Proceedings of TAPSOFT-CAAP-97, International Joint Conference on the Theory and Practice of Software Development, Lecture Notes in Computer Science. Springer-Verlag, 1997.Google Scholar
  5. 5.
    V. Bono and K. Fisher. An imperative, first-order calculus with object extension. In Informal Proceedings of the FOOL 5 workshop on Foundations of Object Oriented Programming, Sans Diego, CA, January 1998. To appear.Google Scholar
  6. 6.
    V. Bono and L. Liquori. A subtyping for the fisher-honsell-mitchell lambda calculus of object. In Proc. of CSL-94, International Conference of Computer Science Logic, volume 933 of Lecture Notes in Computer Science, pages 16–30. Springer-Verlag, 1995.Google Scholar
  7. 7.
    Viviana Bono and Michele Bugliesi. A lambda calculus of incomplete objects. In Proceedings of Mathematical Foundations of Computer Science(MFCS), number 1113 in Lecture Notes in Computer Science, pages 218–229, 1996.Google Scholar
  8. 8.
    Viviana Bono and Michele Bugliesi. Matching constraints for the lambda calculus of objects. In Proceedings of (MFCS), 1997.Google Scholar
  9. 9.
    Kim B. Bruce. Typing in object-oriented languages: Achieving expressibility and safety. Revised version to appear in Computing Surveys, November 1995.Google Scholar
  10. 10.
    Kim B. Bruce, Luca Cardelli, Giuseppe Castagna, Valery Trifonov) the Hopkins Objects Group (Jonathan Eifrig, Scott Smith, Gary T. Leavens, and Benjamin Pierce. On binary methods. Theory and Practice of Object Systems, l(3):221–242, 1996.Google Scholar
  11. 11.
    Kim B. Bruce, Angela Schuett, and Robert van Gent. Polytoil: A type-safe polymorphic object-oriented language. In ECOOP, number 952 in LNCS, pages 27–51. Springer Verlag, 1995.Google Scholar
  12. 12.
    Luca Cardelli. Extensible records in a pure calculus of subtyping. In Carl A. Gunter and John C. Mitchell, editors, Theoretical Aspects Of Object-Oriented Programming. Types, Semantics and Language Design, pages 373–425. MIT Press, 1994.Google Scholar
  13. 13.
    Luca Cardelli and John C. Mitchell. Operations on records. In Fifth International Conference on Mathematical Foundations of Programming Semantics, 1989.Google Scholar
  14. 14.
    K. Fisher and J. C. Mitchell. On the relationship between classes, objects and data abstraction. Theoretical And Practice of Objects Systems, To appear, 1998. A preliminary version appeared in the proceedings of the International Summer School on Mathematics of Program Construction, Marktoberdorf, Germany, Springer LNCS, 1997.Google Scholar
  15. 15.
    Robert W. Harper and Benjamin C. Pierce. Extensible records without subsumption. Technical Report CMU-CS-90-102, Carnegie Mellon University, Pittsburg, Pensylvania, February 1990.Google Scholar
  16. 16.
    Robert W. Harper and Benjamin C. Pierce. A record calculus based on symmetric concatenation. Technical Report CMU-CS-90-157, Carnegie Mellon University, Pittsburg, Pensylvania, February 1990.Google Scholar
  17. 17.
    L. Liquori and G. Castagna. A Typed Lambda Calculus of Objects. In Proc. of ASIAN-96, International Asian Computing Science Conference, volume 1212 of Lecture Notes in Computer Science. Springer-Verlag, 1996.Google Scholar
  18. 18.
    Luigi Liquori. Bounded polymorphism for extensible objects. Technical Report CS-24-96, Dipartimento di Informatica, Universita' di Torino, 1997.Google Scholar
  19. 19.
    Luigi Liquori. An Extended Theory of Primitive Objects: First Order System. In Proceedings of ECOOP-97, International European Conference on Object Oriented Programming, Lecture Notes in Computer Science. Springer-Verlag, 1997.Google Scholar
  20. 20.
    John C. Mitchell and Kathleen Fisher. A delegation-based object calculus with subtyping. In Fundamentals of Computation Theory, number 965 in LNCS, pages 42–61. Springer, 1995.Google Scholar
  21. 21.
    John C. Mitchell, Furio Honsell, and Kathleen Fisher. A lambda calculus of objects and method specialization. In IEEE Symposium on Logic in Computer Science, pages 26–38, June 1993.Google Scholar
  22. 22.
    Jens Palsberg and Trevor Jim. Type inference of object types with variances. Private Discussion, 1996.Google Scholar
  23. 23.
    Didier Rémy. Syntactic theories and the algebra of record terms. Research Report 1869, Institut National de Recherche en Informatique et Automatisme, Rocquen-court, BP 105, 78 153 Le Chesnay Cedex, France, 1993.Google Scholar
  24. 24.
    Didier Rémy. Type inference for records in a natural extension of ML. In Carl A. Gunter and John C. Mitchell, editors, Theoretical Aspects Of Object-Oriented Programming. Types, Semantics and Language Design. MIT Press, 1993.Google Scholar
  25. 25.
    Didier Rémy. Better subtypes and row variables for record types. Presented at the workshop on Advances in types for computer science at the Newton Institute, Cambridge, UK, August 1995.Google Scholar
  26. 26.
    Didier Rémy and JérÔme Vouillon. Objective ML: An effective object-oriented extension to ML. Theoretical And Practice of Objects Systems, To appear, 1998. A preliminary version appeared in the proceedings of the 24th ACM Conference on Principles of Programming Languages, 1997.Google Scholar
  27. 27.
    Jon G. Riecke and Christopher A. Stone. Privacy via subsumption. In Informal Proceedings of the FOOL 5 workshop on Foundations of Object Oriented Programming, Sans Diego, CA, January 1998. To appear.Google Scholar

Copyright information

© Springer-Verlag 1998

Authors and Affiliations

  • Didier Rémy
    • 1
  1. 1.INRIA-RocquencourtFrance

Personalised recommendations