Skip to main content

A delegation-based object calculus with subtyping

  • Invited Lectures
  • Conference paper
  • First Online:
Fundamentals of Computation Theory (FCT 1995)

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

Included in the following conference series:

Abstract

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.

Supported in part by an NSF Graduate Fellowship, NSF Grant CCR-9303099, and a Fannie and John Hertz Foundation Fellowship.

Supported in part by NSF Grant CCR-9303099 and the TRW Foundation.

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. 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. 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. 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. 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. K. Bruce and R. van Gent. TOIL: a new type-safe object-oriented imperative language. Manuscript, 1993.

    Google Scholar 

  6. 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. M. Ellis and B. Stroustrop. The Annotated C ++ Reference Manual. Addison-Wesley, 1990.

    Google Scholar 

  8. 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. 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. A. Goldberg and D. Robson. Smalltalk-80: The language and its implementation, Addison Wesley, 1983.

    Google Scholar 

  11. B. Meyer. Eiffel: The Language. Prentice-Hall, 1992.

    Google Scholar 

  12. 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. Benjamin C. Pierce. Mutable objects. Draft report; available electronically, June 1993.

    Google Scholar 

  14. 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. B. Stroustrop. The C ++ Programming Language. Addison-Wesley, 1986.

    Google Scholar 

  16. 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 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Horst Reichel

Rights and permissions

Reprints and permissions

Copyright information

© 1995 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Fisher, K., Mitchell, J.C. (1995). A delegation-based object calculus with subtyping. In: Reichel, H. (eds) Fundamentals of Computation Theory. FCT 1995. Lecture Notes in Computer Science, vol 965. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-60249-6_40

Download citation

  • DOI: https://doi.org/10.1007/3-540-60249-6_40

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-60249-1

  • Online ISBN: 978-3-540-44770-2

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics