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.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
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.
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.
V. Bono and L. Liquori. A subtyping for the fisher-honsell-mitchell lambda calculus of objects. Berlin, June 1995. Springer LNCS 933. To appear.
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.
K. Bruce and R. van Gent. TOIL: a new type-safe object-oriented imperative language. Manuscript, 1993.
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.
M. Ellis and B. Stroustrop. The Annotated C ++ Reference Manual. Addison-Wesley, 1990.
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.
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.
A. Goldberg and D. Robson. Smalltalk-80: The language and its implementation, Addison Wesley, 1983.
B. Meyer. Eiffel: The Language. Prentice-Hall, 1992.
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.
Benjamin C. Pierce. Mutable objects. Draft report; available electronically, June 1993.
Benjamin C. Pierce and David N. Turner. Simple type-theoretic foundations for object-oriented programming. Journal of Functional Programming, 4(2):207–248, 1994.
B. Stroustrop. The C ++ Programming Language. Addison-Wesley, 1986.
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.
Author information
Authors and Affiliations
Editor information
Rights 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