A delegation-based object calculus with subtyping

  • Kathleen Fisher
  • John C. Mitchell
Invited Lectures
Part of the Lecture Notes in Computer Science book series (LNCS, volume 965)


This paper presents an untyped object calculus that reflects the capabilities of so-called delegation-based object-oriented languages. A type inference system allows static detection of errors, such as message not understood, while at the same time allowing the type of an inherited method to be specialized to the type of the inheriting object. The main advance over previous work is the provision for subtyping in the presence of delegation primatives. This is achieved by distinguishing a prototype, whose methods may be extended or replaced, from an object, which only responds to messages for which it already has methods. An advantage of this approach is that we have full subtyping without restricting the “runtime” use of inheritance. Type soundness is proved using operational semantics and an analysis of typing derivations.


Operational Semantic Typing Rule Type Soundness Colored Point Typing Derivation 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [AC94]
    M. Abadi and L. Cardelli. A theory of primitive objects: untyped and first-order systems. Tn Proc. Theor. Aspects of Computer Software, pages 296–320. Springer-Verlag LNCS 789, 1994.Google Scholar
  2. [AC95]
    M. Abadi and L. Cardelli. An imperative object calculus: Basic typing and soundness. In SIPL '95 — Proc. Second ACM SIGPLAN Workshop on State in Programming Languages. Technical Report UTUCDCS-R-95-1900, Department of Computer Science, University of Illinois at Urbana-Champaign, 1995.Google Scholar
  3. [BL95]
    V. Bono and L. Liquori. A subtyping for the fisher-honsell-mitchell lambda calculus of objects. Berlin, June 1995. Springer LNCS 933. To appear.Google Scholar
  4. [Bru93]
    K. Bruce. Safe type checking in a statically-typed object-oriented programming language. Tn Proc 20th ACM Symp. Principles of Programming Languages, pages 285–298, 1993.Google Scholar
  5. [Bv93]
    K. Bruce and R. van Gent. TOIL: a new type-safe object-oriented imperative language. Manuscript, 1993.Google Scholar
  6. [CU89]
    C. Chambers and D. Ungar. Customization: Optimizing compiler technology for Self, a dynamically-typed object-oriented programming language. In STGPLAN '89 Conf. on Programming Language Design and Implementation, pages 146–160, 1989.Google Scholar
  7. [ES90]
    M. Ellis and B. Stroustrop. The Annotated C ++ Reference Manual. Addison-Wesley, 1990.Google Scholar
  8. [FHM94]
    K. Fisher, F. Honsell, and J.C. Mitchell. A lambda calculus of objects and method specialization. Nordic J. Computing (formerly BIT), 1:3–37, 1994. Preliminary version appeared in Proc. IREE Symp. on Logic in Computer Science, 1993, 26–38.Google Scholar
  9. [FM94]
    K. Fisher and J.C. Mitchell. Notes on typed object-oriented programming. In Proc. Theoretical Aspects of Computer Software, pages 844–885. Springer LNCS 789, 1994.Google Scholar
  10. [GR83]
    A. Goldberg and D. Robson. Smalltalk-80: The language and its implementation, Addison Wesley, 1983.Google Scholar
  11. [Mey92]
    B. Meyer. Eiffel: The Language. Prentice-Hall, 1992.Google Scholar
  12. [Mit90]
    J.C. Mitchell. Toward a typed foundation for method specialization and inheritance. In Proc. 17th ACM Symp. on Principles of Programming Languages, pages 109–124, January 1990.Google Scholar
  13. [Pie93]
    Benjamin C. Pierce. Mutable objects. Draft report; available electronically, June 1993.Google Scholar
  14. [PT94]
    Benjamin C. Pierce and David N. Turner. Simple type-theoretic foundations for object-oriented programming. Journal of Functional Programming, 4(2):207–248, 1994.Google Scholar
  15. [Str86]
    B. Stroustrop. The C ++ Programming Language. Addison-Wesley, 1986.Google Scholar
  16. [US91]
    D. Ungar and R.B. Smith. Self: The power of simplicity. Lisp and Symbolic Computation, 4(3):187–206, 1991. Preliminary version appeared in Proc. ACM Symp. on Object-Oriented Programming: Systems, Languages, and Applications, 1987, 227–241.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1995

Authors and Affiliations

  • Kathleen Fisher
    • 1
  • John C. Mitchell
    • 1
  1. 1.Computer Science DepartmentStanford UniversityStanford

Personalised recommendations