Abstract
We develop an imperative calculus of objects. Its main type constructor is the one for object types, which incorporate variance annotations and Self types. A subtyping relation between object types supports object subsumption. The type system for objects relies on unusual but beneficial assumptions about the possible subtypes of an object type. With the addition of polymorphism, the calculus can express classes and inheritance.
Chapter PDF
Similar content being viewed by others
Keywords
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.
References
Abadi, M., Baby Modula-3 and a theory of objects. Journal of Functional Programming 4(2), 249–283. 1994.
Abadi, M. and L. Cardelli, A semantics of object types. Proc. IEEE Symposium on Logic in Computer Science, 332–341. 1994.
Abadi, M. and L. Cardelli, A theory of primitive objects: second-order systems. Proc. ESOP'94 — European Symposium on Programming. Springer-Verlag. 1994.
Abadi, M. and L. Cardelli, A theory of primitive objects: untyped and first-order systems. Proc. Theoretical Aspects of Computer Software. Springer-Verlag. 1994.
Abadi, M. and L. Cardelli, An imperative object calculus: basic typing and soundness. Proc. Second ACM SIGPLAN Workshop on State in Programming Languages, 19–32. Technical Report UIUCDCS-R-95-1900, University of Illinois at Urbana Champaign. 1995.
Amadio, R.M. and L. Cardelli, Subtyping recursive types. ACM Transactions on Programming Languages and Systems 15(4), 575–631. 1993.
Bruce, K.B., A paradigmatic object-oriented programming language: design, static typing and semantics. Journal of Functional Programming 4(2), 127–206. 1994.
Bruce, K.B. and G. Longo, A modest model of records, inheritance and bounded quantification. Information and Computation 87(1/2), 196–240. 1990.
Bruce, K.B., A. Schuett, and R. van Gent, Poly TOIL: a type-safe polymorphic object-oriented language. Williams College. 1994.
Cardelli, L., Extensible records in a pure calculus of subtyping. In Theoretical Aspects of Object-Oriented Programming, C.A. Gunter and J.C. Mitchell, ed. MIT Press. 373–425. 1994.
Cardelli, L. and J.C. Mitchell, Operations on records. Mathematical Structures in Computer Science 1(1), 3–48. 1991.
Cardelli, L., J.C. Mitchell, S. Martini, and A. Scedrov, An extension of system F with subtyping. Information and Computation 109(1–2), 4–56. 1994.
Cook, W.R., A proposal for making Eiffel type-safe. Proc. European Conference of Object-Oriented Programming, 57–72. 1989.
Eifrig, J., S. Smith, V. Trifonov, and A. Zwarico, An interpretation of typed OOP in a language with state. Lisp and Symbolic Computation, (to appear). 1995.
Harper, R., A simplified account of polymorphic references. Information Processing Letters 51(4). 1994.
Harper, R. and B. Pierce, A record calculus based on symmetric concatenation. Proc. 18th Annual ACM Symposium on Principles of Programming Languages. 1991.
Leroy, X., Polymorphic typing of an algorithmic language. Rapport de Recherche no.1778 (Ph.D Thesis). INRIA. 1992.
Meyer, B., Object-oriented software construction. Prentice Hall. 1988.
Mitchell, J.C., F. Honsell, and K. Fisher, A lambda calculus of objects and method specialization. Proc. 8th Annual IEEE Symposium on Logic in Computer Science. 1993.
Pierce, B.C. and D.N. Turner, Simple type-theoretic foundations for object-oriented programming. Journal of Functional Programming 4(2), 207–247. 1994.
Rémy, D., Typechecking records and variants in a natural extension of ML. Proc. 16th Annual ACM Symposium on Principles of Programming Languages, 77–88. 1989.
Szypersky, C., S. Omohundro, and S. Murer, Engineering a programming language: the type and class system of Sather. TR-93-064. ICSI, Berkeley. 1993.
Tofte, M., Type inference for polymorphic references. Information and Computation 89, 1–34. 1990.
Wand, M., Type inference for record concatenation and multiple inheritance. Proc. 4th Annual IEEE Symposium on Logic in Computer Science, 92–97. 1989.
Wright, A.K. and M. Felleisen, A syntactic approach to type soundness. Information and Computation 115(1), 38–94. 1994.
Yonezawa, A. and M. Tokoro, ed. Object-oriented concurrent programming. MIT Press. 1987.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1995 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Abadi, M., Cardelli, L. (1995). An imperative object calculus. In: Mosses, P.D., Nielsen, M., Schwartzbach, M.I. (eds) TAPSOFT '95: Theory and Practice of Software Development. CAAP 1995. Lecture Notes in Computer Science, vol 915. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-59293-8_214
Download citation
DOI: https://doi.org/10.1007/3-540-59293-8_214
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-59293-8
Online ISBN: 978-3-540-49233-7
eBook Packages: Springer Book Archive