Advertisement

A theory of primitive objects

Untyped and first-order systems
  • Martín Abadi
  • Luca Cardelli
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 789)

Abstract

We introduce simple object calculi that support method override and object subsumption. We give an untyped calculus, typing rules, and equational rules. We illustrate the expressiveness of our calculi and the pitfalls that we avoid.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. [Abadi 1994] M. Abadi, Baby Modula-3 and a theory of objects. Journal of Functional Programming (to appear).Google Scholar
  2. [Abadi, Cardelli 1994] M. Abadi and L. Cardelli. A theory of primitive objects: second-order systems. Proc. ESOP'94 — European Symposium on Programming. Springer-Verlag.Google Scholar
  3. [Abadi, Cardelli 199X] M. Abadi and L. Cardelli, A theory of primitive objects. To appear.Google Scholar
  4. [Abadi, et al. 1991] M. Abadi, L. Cardelli, B. Pierce, and G.D. Plotkin, Dynamic typing in a statically typed language. ACM Transactions on Programming Languages and Systems 13(2), 237–268.Google Scholar
  5. [Amadio, Cardelli 1991] R.M. Amadio and L. Cardelli. Subtyping recursive types. Proc. 18th Annual ACM Symposium on Principles of Programming Languages.Google Scholar
  6. [Barendregt 1985] H.P. Barendregt, The lambda-calculus, its syntax and semantics. North-Holland.Google Scholar
  7. [Bruce 1993] K.B. Bruce. A paradigmatic object-oriented programming language: design, static typing, and semantics. Technical Report No. CS-92-01, revised. Williams College.Google Scholar
  8. [Cardelli 1988] L. Cardelli, A semantics of multiple inheritance. Information and Computation 76, 138–164.Google Scholar
  9. [Cardelli 1991] L. Cardelli. Extensible records in a pure calculus of subtyping. Technical Report n.81. DEC Systems Research Center.Google Scholar
  10. [Cardelli, Mitchell 1991] L. Cardelli and J.C. Mitchell, Operations on records. Mathematical Structures in Computer Science 1(1), 3–48.Google Scholar
  11. [Cook, Hill, Canning 1990] W. Cook, W. Hill, and P. Canning. Inheritance is not subtyping. Proc. Seventeenth Annual ACM Symposium on Principles of Programming Languages.Google Scholar
  12. [Cook 1989] W.R. Cook. A denotational semantics of inheritance. Ph.D. Thesis, Computer Science Dept., Brown University.Google Scholar
  13. [Dahl, Nygaard 1966] O. Dahl and K. Nygaard, Simula, an Algol-based simulation language. Communications of the ACM 9, 671–678.Google Scholar
  14. [Kamin 1988] S. Kamin. Inheritance in Smalltalk-80: a denotational definition. Proc. 15th Annual ACM Symposium on Principles of Programming Languages.Google Scholar
  15. [MacQueen, Plotkin, Sethi 1986] D.B. MacQueen, G.D. Plotkin, and R. Sethi, An ideal model for recursive polymorphic types. Information and Control 71, 95–130.Google Scholar
  16. [Mitchell, Honsell, Fisher 1993] J.C. Mitchell, F. Honsell, and K. Fisher. A lambda calculus of objects and method specialization. Proc. 8th Annual IEEE Symposium on Logic in Computer Science.Google Scholar
  17. [Nelson 1991] G. Nelson, ed. Systems programming with Modula-3. Prentice Hall.Google Scholar
  18. [Pierce, Turner 1994] B.C. Pierce and D.N. Turner, Simple type-theoretic foundations for object-oriented programming. Journal of Functional Programming (to appear).Google Scholar
  19. [Wand 1987] M. Wand. Complete type inference for simple objects. Proc. 2nd Annual IEEE Symposium on Logic in Computer Science.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1994

Authors and Affiliations

  • Martín Abadi
    • 1
  • Luca Cardelli
    • 1
  1. 1.Systems Research CenterDigital Equipment CorporationUSA

Personalised recommendations