skip to main content
article

Typed interpretations of extensible objects

Authors Info & Claims
Published:01 October 2002Publication History
Skip Abstract Section

Abstract

Finding typed encodings of object-oriented into procedural or functional programming sheds light on the theoretical foundations of object-oriented languages and their specific typing constructs and techniques. This article describes a type preserving and computationally adequate interpretation of a full-fledged object calculus that supports message passing and constructs for object update and extension. The target theory is a higher-order λ-calculus with records and recursive folds/unfolds, polymorphic and recursive types, and subtyping. The interpretation specializes to calculi of nonextensible objects, and validates the expected subtypin

References

  1. Abadi, M. 1994. Baby Modula--3 and a theory of objects. J. Funct. Prog. 4, 2, 249--283.]]Google ScholarGoogle Scholar
  2. Abadi, M. and Cardelli, L. 1996a. On subtyping and matching. ACM Trans. Prog. Lang. Syst. 11, 4, 401--423.]] Google ScholarGoogle Scholar
  3. Abadi, M. and Cardelli, L. 1996b. A Theory of Objects. Monographs in Computer Science. Springer-Verlag, New York.]] Google ScholarGoogle Scholar
  4. Abadi, M., Cardelli, L., and Viswanathan, R. 1996. An interpretation of objects and object types. In Proceedings of the 1996 ACM Conference on Principles of Programming Languages. ACM, New York, 396--409.]] Google ScholarGoogle Scholar
  5. Bono, V., and Bugliesi, M. 1999. Matching for the Lambda calculus of objects. Theoret. Comput. Sci. 212, 1/2, 101--140.]] Google ScholarGoogle Scholar
  6. Bono, V., Bugliesi, M., Dezani, M., and Liquori, L. 1999. Subtyping constraints for incomplete objects. Funda. Inf. 38, 4, 325--364.]]Google ScholarGoogle Scholar
  7. Bono, V. and Liquori, L. 1995. A subtyping for the Fisher--Honsell--Mitchell Lambda calculus of objects. In Proceedings of CSL'95. Lecture Notes in Computer Science, vol. 933. Springer-Verlag, New York, 16--30.]] Google ScholarGoogle Scholar
  8. Boudol, G. and Dal Zilio, S. 1999. An interpretation of extensible objects. In Proceedings of FCT'99. Lecture Notes in Computer Science, vol. 1684. Springer-Verlag, New York, 148--160.]] Google ScholarGoogle Scholar
  9. Bruce, K. 1994. A paradigmatic object-oriented programming language: Design, static typing and semantcs. J. of Funct. Prog. 1, 4, 127--206.]]Google ScholarGoogle Scholar
  10. Bruce, K., Cardelli, L., and Pierce, B. 1999. Comparing object encodings. Inf. Comput. 155, 1/2, 108--133.]] Google ScholarGoogle Scholar
  11. Cardelli, L. 1988. A semantics of multiple inheritance. Inf. Comput. 76, 138--164.]] Google ScholarGoogle Scholar
  12. Cook, W. 1987. A self-ish model of inheritance. Manuscript.]]Google ScholarGoogle Scholar
  13. Cook, W. 1989. A denotational semantics of inheritance. Ph.D. dissertation, Brown University.]] Google ScholarGoogle Scholar
  14. Crary, K. 1999. Simple, efficient object encoding using intersection types. Tech. rep., CMU-CS-99-100, Cornell University.]] Google ScholarGoogle Scholar
  15. Fisher, K., Honsell, F., and Mitchell, J. C. 1994. A Lambda calculus of objects and method specialization. Nordic J. Comput. 1, 1, 3--37.]] Google ScholarGoogle Scholar
  16. Fisher, K. and Mitchell, J. C. 1995. A delegation-based object calculus with subtyping. In Proceedings of FCT'95. Lecture Notes in Computer Science, vol. 965. Springer-Verlag, New York, 42--61.]] Google ScholarGoogle Scholar
  17. Fisher, K. and Mitchell, J. C. 1998. On the relationship between classes, objects, and data abstraction. Theory Pract. Obj. Syst. 4, 1, 3--25.]] Google ScholarGoogle Scholar
  18. Kamin, S. 1988. Inheritance in Smalltalk-80: A denotational definition. In Proceedings of the 1988 ACM Conference on Principles of Programming Languages. ACM, New York, 80--87.]] Google ScholarGoogle Scholar
  19. Liquori, L. 1997. An extended theory of primitive objects: First order system. In Proceedings of ECOOP'97. Lecture Notes in Computer Science, vol. 1241. Springer-Verlag, New York, 146--169.]]Google ScholarGoogle Scholar
  20. Pierce, B. and Turner, D. 1994. Simple type-theoretic foundations for object-oriented programming. J. Funct. Prog. 4, 2, 207--248.]]Google ScholarGoogle Scholar
  21. Reddy, U. 1988. Objects as Closures: Abstarct Semantics of Object Oriented Languages. In Proceedings of the ACM International Conference on LISP and Functional Programming. ACM, New York, 289--297.]] Google ScholarGoogle Scholar
  22. Rémy, D. 1998. From classes to objects via subtyping. In Proceedings of ESOP'98. Lecture Notes in Computer Science, vol. 1381. Springer-Verlag, New York.]] Google ScholarGoogle Scholar
  23. Riecke, J. C. and Stone, C. A. 1998. Privacy via Subsumption. In Proceedings of FOOL'98. Extented version to appear in Theory and Practice of Object Systems.]]Google ScholarGoogle Scholar
  24. Viswanathan, R. 1998. Full abstraction and first-order objects with recursive types and subtyping. In Proceedings of LICS'98. 380--391.]] Google ScholarGoogle Scholar

Index Terms

  1. Typed interpretations of extensible objects

              Recommendations

              Comments

              Login options

              Check if you have access through your login credentials or your institution to get full access on this article.

              Sign in

              Full Access

              PDF Format

              View or Download as a PDF file.

              PDF

              eReader

              View online with eReader.

              eReader