Skip to main content

Comparing object encodings

  • Session 6
  • Conference paper
  • First Online:
Theoretical Aspects of Computer Software (TACS 1997)

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

Included in the following conference series:

Abstract

Recent years have seen the development of several foundational models for statically typed object-oriented programming. But despite their intuitive similarity, differences in the technical machinery used to formulate the various proposals have made them difficult to compare. Using the typed lambda-calculus F ω< : as a common basis, we now offer a detailed comparison of four models: (1) a recursive-record encoding similar to the ones used by Cardelli [Car84], Reddy [Red88, KR94], Cook [Coo89, CHC90], and others; (2) Hofmann, Pierce, and Turner's existential encoding [PT94, HP95]; (3) Bruce's model based on existential and recursive types [Bru94]; and (4) Abadi, Cardelli, and Viswanathan's type-theoretic encoding [ACV96] of a calculus of primitive objects.

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. Roberto Amadio and Luca Cardelli. Subtyping recursive types. ACM Transactions on Programming Languages and Systems, 15(4):575–631, 1993.

    Google Scholar 

  2. Martín Abadi and Luca Cardelli. On subtyping and matching. In Proceedings SCOOP '95, pages 145–167, 1995.

    Google Scholar 

  3. Martín Abadi and Luca Cardelli. A Theory of Objects. Springer-Verlag, 1996.

    Google Scholar 

  4. Martín Abadi, Luca Cardelli, and Ramesh Viswanathan. An interpretation of objects and object types. In Principles of Programming Languages, pages 396–409, 1996.

    Google Scholar 

  5. Kim B. Bruce, Luca Cardelli, Giuseppe Castagna, the Hopkins Objects Group (Jonathan Eifrig, Scott Smith, Valery Trifonov), Gary T. Leavens, and Benjamin Pierce. On binary methods. Theory and Practice of Object Systems, 1(3):221–242, 1996.

    Google Scholar 

  6. A. P. Black, N. Hutchinson, E. Jul, H. M. Levy, and L. Carter. Distribution and abstract types in Emerald. IEEE Transactions on Software Engineering, SE-13(1):65–76, 1987.

    Google Scholar 

  7. Kim B. Bruce, Leaf Petersen, and Adrian Fiech. Subtyping is not a good “match” for object-oriented languages. In Proceedings SCOOP '97, page to appear, 1995.

    Google Scholar 

  8. Kim B. Bruce. A paradigmatic object-oriented programming language: Design, static typing and semantics. Journal of Functional Programming, 4(2), April 1994. A preliminary version appeared in POPL 1993 under the title “Safe Type Checking in a Statically Typed Object-Oriented Programming Language”.

    Google Scholar 

  9. Kim B. Bruce, Angela Schuett, and Robert van Gent. PolyTOIL: A typesafe polymorphic object-oriented language, extended abstract. In ECOOP '95, pages 27–51. LNCS 952, Springer-Verlag, 1995.

    Google Scholar 

  10. Luca Cardelli. A semantics of multiple inheritance. In G. Kahn, D. MacQueen, and G. Plotkin, editors, Semantics of Data Types, volume 173 of Lecture Notes in Computer Science, pages 51–67. Springer-Verlag, 1984. Full version in Information and Computation 76(2/3):138–164, 1988.

    Google Scholar 

  11. Luca Cardelli. Notes about F ω< :. Unpublished manuscript, October 1990.

    Google Scholar 

  12. P. Canning, W. Cook, W. Hill, J. Mitchell, and W. Olthoff. F-bounded quantification for object-oriented programming. In Functional Prog. and Computer Architecture, pages 273–280, 1989.

    Google Scholar 

  13. [CCH+89b] Peter Canning, William Cook, Walter Hill, Walter Olthoff, and John Mitchell. F-bounded quantification for object-oriented programming. In Fourth International Conference on Functional Programming Languages and Computer Architecture, pages 273–280, September 1989.

    Google Scholar 

  14. Pierre-Louis Curien and Giorgio Ghelli. Coherence of subsumption: Minimum typing and type-checking in F. Mathematical Structures in Computer Science, 2:55–91, 1992. Also in Carl A. Gunter and John C. Mitchell, editors, Theoretical Aspects of Object-Oriented Programming: Types, Semantics, and Language Design (MIT Press, 1994).

    Google Scholar 

  15. William R. Cook, Walter L. Hill, and Peter S. Canning. Inheritance is not subtyping. In Proc. 17th ACM Symp. on Principles of Programming Languages, pages 125–135, January 1990.

    Google Scholar 

  16. Luca Cardelli and Giuseppe Longo. A semantic basis for Quest. Journal of Functional Programming, 1(4):417–458, 1991.

    Google Scholar 

  17. Adriana B. Compagnoni. Decidability of higher-order subtyping with intersection types. In Computer Science Logic, September 1994. Kazimierz, Poland. Springer Lecture Notes in Computer Science 933, June 1995. Also available as University of Edinburgh, LFCS technical report ECS-LFCS94-281, titled “Subtyping in F ω is decidable”.

    Google Scholar 

  18. William Cook. A Denotational Semantics of Inheritance. PhD thesis, Brown University, 1989.

    Google Scholar 

  19. W. Cook and J. Palsberg. A denotational semantics of inheritance and its correctness. In Proc. ACM Conf. on Object-Oriented Programming: Systems, Languages and Applications, pages 433–444, 1989.

    Google Scholar 

  20. Luca Cardelli and Peter Wegner. On understanding types, data abstraction, and polymorphism. Computing Surveys, 17(4), December 1985.

    Google Scholar 

  21. [DGLM95] Mark Day, Robert Gruber, Barbara Liskov, and Andrew C. Meyers. Subtypes vs. where clauses: Constraining parametric polymorphism. In Proc. ACM Symp. on Object-Oriented Programming: Systems, Languages, and Applications, pages 156–168, 1995.

    Google Scholar 

  22. Kathleen Fisher and John Mitchell. Notes on typed object-oriented programming. In Proceedings Theoretical Aspects of Computer Software, pages 138–150. Springer LNCS 789, 1994.

    Google Scholar 

  23. Kathleen Fisher and John Mitchell. The development of type systems for object-oriented languages.Theory and Practice of Object Systems, 1(3):189–220, 1996.

    Google Scholar 

  24. Giorgio Ghelli. Recursive types are not conservative over F. In Typed Lambda Calculus and Applications, March 1993.

    Google Scholar 

  25. Giorgio Ghelli. Divergence of F type checking. Theoretical Computer Science, 139(1,2):131–162, 1995.

    Google Scholar 

  26. Martin Hofmann and Benjamin Pierce. A unifying type-theoretic framework for objects. Journal of Functional Programming, 5(4):593–635, October 1995. Previous versions appeared in the Symposium on Theoretical Aspects of Computer Science, 1994, (pages 251–262) and, under the title “An Abstract View of Objects and Subtyping (Preliminary Report),” as University of Edinburgh, LFCS technical report ECS-LFCS-92-226, 1992.

    Google Scholar 

  27. Samuel N. Kamin and Uday S. Reddy. Two semantic models of objectoriented languages. In Carl A. Gunter and John C. Mitchell, editors, Theoretical Aspects of Object-Oriented Programming: Types, Semantics, and Language Design, pages 464–495. The MIT Press, 1994.

    Google Scholar 

  28. 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.Also in Carl A. Gunter and John C. Mitchell, editors, Theoretical Aspects of Object-Oriented Programming: Types, Semantics, and Language Design (MIT Press, 1994).

    Google Scholar 

  29. Yasuhiko Minamide, Greg Morrisett, and Robert Harper. Typed closure conversion. In Proc. 23rd ACM Symp. on Principles of Programming Languages, pages 271–283, January 1996.

    Google Scholar 

  30. J.C. Mitchell and G.D. Plotkin. Abstract types have existential type. ACM Trans. on Programming Languages and Systems, 10(3):470–502, 1988. Preliminary version appeared in Proc. 12th ACM Symp. on Principles of Programming Languages, 1985.

    Google Scholar 

  31. Benjamin C. Pierce. Bounded quantification is undecidable. Information and Computation, 112(1):131–165, July 1994. Also in Carl A. Gunter and John C. Mitchell, editors, Theoretical Aspects of Object-Oriented Program ming: Types, Semantics, and Language Design (MIT Press, 1994). A preliminary version appeared in POPL '92.

    Google Scholar 

  32. Benjamin Pierce and Martin Steffen. Higher-order subtyping. Theoretical Computer Science, 1997. To appear. A preliminary version appeared in IFIP Working Conference on Programming Concepts, Methods and Cal culi (PROCOMET), June 1994, and as University of Edinburgh technical report ECS-LFCS-94-280 and Universität Erlangen-Niirnberg Interner Bericht IMMD7-01/94, January 1994.

    Google Scholar 

  33. Benjamin C. Pierce and David N. Turner. Simple type-theoretic foundations for object-oriented programming. Journal of functional programming, 4:207–247, 1994. An earlier version appeared in Proc. of POPL '93, pp. 299–312.

    Google Scholar 

  34. Uday S. Reddy. Objects as closures: Abstract semantics of object oriented languages. In Proceedings of the 1988 ACM Symposium on Lisp and Functional Programming, pages 289–297, Snowbird, Utah, July 1988.

    Google Scholar 

  35. Davide Sangiorgi. Interpreting typed objects into typed pi-calculus (invited lecture). Available electronically through http://www.cs.williams.edu/~kim/FOOL/Abstracts.html, July 1996.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Martín Abadi Takayasu Ito

Rights and permissions

Reprints and permissions

Copyright information

© 1997 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Bruce, K.B., Cardelli, L., Pierce, B.C. (1997). Comparing object encodings. In: Abadi, M., Ito, T. (eds) Theoretical Aspects of Computer Software. TACS 1997. Lecture Notes in Computer Science, vol 1281. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0014561

Download citation

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

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-63388-4

  • Online ISBN: 978-3-540-69530-1

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics