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.
Preview
Unable to display preview. Download preview PDF.
References
Roberto Amadio and Luca Cardelli. Subtyping recursive types. ACM Transactions on Programming Languages and Systems, 15(4):575–631, 1993.
Martín Abadi and Luca Cardelli. On subtyping and matching. In Proceedings SCOOP '95, pages 145–167, 1995.
Martín Abadi and Luca Cardelli. A Theory of Objects. Springer-Verlag, 1996.
Martín Abadi, Luca Cardelli, and Ramesh Viswanathan. An interpretation of objects and object types. In Principles of Programming Languages, pages 396–409, 1996.
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.
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.
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.
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”.
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.
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.
Luca Cardelli. Notes about F ω< :. Unpublished manuscript, October 1990.
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.
[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.
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).
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.
Luca Cardelli and Giuseppe Longo. A semantic basis for Quest. Journal of Functional Programming, 1(4):417–458, 1991.
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”.
William Cook. A Denotational Semantics of Inheritance. PhD thesis, Brown University, 1989.
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.
Luca Cardelli and Peter Wegner. On understanding types, data abstraction, and polymorphism. Computing Surveys, 17(4), December 1985.
[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.
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.
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.
Giorgio Ghelli. Recursive types are not conservative over F≤. In Typed Lambda Calculus and Applications, March 1993.
Giorgio Ghelli. Divergence of F≤ type checking. Theoretical Computer Science, 139(1,2):131–162, 1995.
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.
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.
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).
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.
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.
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.
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.
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.
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.
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.
Author information
Authors and Affiliations
Editor information
Rights 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