Advertisement

ACTS: A type system for object-oriented programming based on abstract and concrete classes

  • Mahesh Dodani
  • Chung-Shin Tsai
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 615)

Abstract

The inheritance mechanism facilitates incremental modification and is the basis for the many advantages and popularity of the object oriented paradigm. The overloading of inheritance to describe different relationship requires a semantic model to facilitate “safe” redefinition between classes. Current approaches use type systems to ensure “safe” redefinitions, and are not capable of handling all the different uses of inheritance naturally. This paper develops a uniform type system built on a hierarchy which distinguishes between abstract and concrete classes. We show how such a structure on the hierarchy can be exploited to describe all common uses of inheritance in a natural way. Finally, we develop the formalism to define abstract and concrete classes and their relationships; and the type system along with the static type checker and the semantic model to interpret type safety.

Keywords

Type System Semantic Model Class Hierarchy Type Environment Denotational Semantic 
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.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. [Ada83]
    U.S. Department of Defense, Reference Manual for the Ada Programming Language, January 1983.Google Scholar
  2. [Americ87]
    Pierre America, “Inheritance and Subtyping in a Parallel Object-Oriented Language”, ECOOP'87, pp. 234–242.Google Scholar
  3. [Black91]
    Andrew P. Black, Norman Hutchinson, “Typechecking Polymorphism in Emerald”, Digital Equipment Corporation, July 1991.Google Scholar
  4. [Bobrow88]
    D. G. Bobrow, L. G. DeMichiel, R. P. Gabriel, S. E. Keene, G. Kiczales, D. A. Moon, Common Lisp Object System Specification X3J13, In SIGPLAN Notices 23 (Special Issue), September 1988.Google Scholar
  5. [Cannin88]
    Peter Canning, Walt Hill, Walter Olthoff, “Towards a Kernel Language for Object-Oriented Programming”, HP Tech. Report STL-88-21.Google Scholar
  6. [Cannin89]
    Peter Canning, W. Cook, Walt Hill, J. Mitchell, Walter Olthoff, “Fbounded polymorphism for object-oriented programming”, Proc. of Conf. on Functional Progr. Languages and Comp. Arch., 1989.Google Scholar
  7. [Cannin89a]
    Peter Canning, William Cook, Walter Hill, Walter Olthoff, “Interfaces for Strongly-Typed Object-Oriented Programming”, OOPSLA'89, pp. 457–467.Google Scholar
  8. [Cardel84]
    Luca Cardelli, “A semantics of Multiple Inheritance”, In Semantics of Data Types (Lecture Notes in CS, 173), 1984, pp. 51–67.Google Scholar
  9. [Cardel85]
    Luca Cardelli, Peter Wegner, “On Understanding Types, Data Abstraction, and Polymorphism”, ACM Computing Surveys 17(4), December 1985, pp. 471–522.CrossRefGoogle Scholar
  10. [Cook89]
    William Cook, Jens Palsberg, “A Denotational Semantics of Inheritance and its Correctness”, OOPSLA'89, pp. 433–443.Google Scholar
  11. [Cook90]
    William Cook, W.L. Hill, P.S. Canning, “Inheritance is not subtyping”, 17th ACM Symposium on Principles of Programming Languages, 1990, pp. 125–135.Google Scholar
  12. [Danfor88]
    Scott Danforth, Chris Tomlinson, “Type Theories and Object-Oriented Programming”, ACM Computing Surveys 20(1) 1988, pp. 29–72.MathSciNetCrossRefGoogle Scholar
  13. [Dodani92]
    Mahesh Dodani, Chung-Shin Tsai, Tami Siu-Pui Lee, “TOPS: An Environment for Developing and Testing Type Systems for Object-Oriented Programming Languages”, submitted for consideration to OOPSLA'92.Google Scholar
  14. [Dodani92a]
    Mahesh Dodani, Chung-Shin Tsai, “The Denotational Semantics of the Abstract/Concrete Model in SML”, Technical report, Dept. of Computer Science, The University of Iowa, in preparation.Google Scholar
  15. [Ghelli91]
    Giorgio Ghelli, “Modelling features of object-oriented languages in second order functional languages with subtypes”, in Foundations of Object-Oriented Languages (G. Rozenberg ed.), Springer-Verlag, Berlin, 1991.Google Scholar
  16. [Ghelli91a]
    Giorgio Ghelli, “A Static Type System for Message Passing”, OOPSLA'91, pp. 129–145.Google Scholar
  17. [Goldbe83]
    Adele Goldberg and David Robson, Smalltalk-80: The Language and its Implementation, Addison-Wesley, 1983.Google Scholar
  18. [Graver90]
    Justin Graver, Ralph Johnson, “A Type System for Smalltalk”, POPL'90, 136–150.Google Scholar
  19. [Kamin88]
    Samuel Kamin, “Inheritance in SMALLTALK-80: A Denotational Definition”, Proceedings of the 15th ACM Symposium on Principles of Programming Languages, January 1988, pp. 80–87.Google Scholar
  20. [Meyer88]
    Bertrand Meyer, Object-oriented Software Construction, Prentice Hall, 1988.Google Scholar
  21. [Milche90]
    John Mitchell, “Toward a typed foundation for method specialization and inheritance”, 17th ACM Symposium on Principles of Programming Languages, 1990, pp. 109–124.Google Scholar
  22. [Milner84]
    R. Milner, “A Proposal for Standard ML”, Proc. ACM Conf. on Lisp and Functional Programming, Austin, 1984.Google Scholar
  23. [Reddy88]
    Uday Reddy, “Objects as Closures: Abstract Semantics of Object Oriented Languages”, 1988 ACM Conference on Lisp and Functional Programming, pp. 289–297.Google Scholar
  24. [Schaff86]
    Craig Schaffert, Topher Cooper, Bruce Bullis, Mike Kilian, Carrie Wilpolt, “An Introduction to Trellis/Owl”, OOPSLA'86, pp. 9–16.Google Scholar
  25. [Snyder87]
    Alan Snyder, “Inheritance and the Development of Encapsulated Software, Components”, In Research Directions in Object-Oriented Programming, pp. 165–188.Google Scholar
  26. [Wand89]
    M. Wand, “Type inference for record concatenation and multiple inheritance”, Porc. of LICS, 1989, pp. 92–97.Google Scholar
  27. [Wegner88]
    Peter Wegner, Stanley Zdonik, “Inheritance as an Incremental Modification Mechanism or What Like Is and Isn't Like”, ECOOP'88, pp. 55–77.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1992

Authors and Affiliations

  • Mahesh Dodani
    • 1
  • Chung-Shin Tsai
    • 1
  1. 1.Department of Computer ScienceThe University of IowaIowa City

Personalised recommendations