Skip to main content

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

  • Conference paper
  • First Online:
ECOOP ’92 European Conference on Object-Oriented Programming (ECOOP 1992)

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

Included in the following conference series:

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.

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. U.S. Department of Defense, Reference Manual for the Ada Programming Language, January 1983.

    Google Scholar 

  2. Pierre America, “Inheritance and Subtyping in a Parallel Object-Oriented Language”, ECOOP'87, pp. 234–242.

    Google Scholar 

  3. Andrew P. Black, Norman Hutchinson, “Typechecking Polymorphism in Emerald”, Digital Equipment Corporation, July 1991.

    Google Scholar 

  4. 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. Peter Canning, Walt Hill, Walter Olthoff, “Towards a Kernel Language for Object-Oriented Programming”, HP Tech. Report STL-88-21.

    Google Scholar 

  6. 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. Peter Canning, William Cook, Walter Hill, Walter Olthoff, “Interfaces for Strongly-Typed Object-Oriented Programming”, OOPSLA'89, pp. 457–467.

    Google Scholar 

  8. Luca Cardelli, “A semantics of Multiple Inheritance”, In Semantics of Data Types (Lecture Notes in CS, 173), 1984, pp. 51–67.

    Google Scholar 

  9. Luca Cardelli, Peter Wegner, “On Understanding Types, Data Abstraction, and Polymorphism”, ACM Computing Surveys 17(4), December 1985, pp. 471–522.

    Article  Google Scholar 

  10. William Cook, Jens Palsberg, “A Denotational Semantics of Inheritance and its Correctness”, OOPSLA'89, pp. 433–443.

    Google Scholar 

  11. 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. Scott Danforth, Chris Tomlinson, “Type Theories and Object-Oriented Programming”, ACM Computing Surveys 20(1) 1988, pp. 29–72.

    Article  MathSciNet  Google Scholar 

  13. 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. 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. 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. Giorgio Ghelli, “A Static Type System for Message Passing”, OOPSLA'91, pp. 129–145.

    Google Scholar 

  17. Adele Goldberg and David Robson, Smalltalk-80: The Language and its Implementation, Addison-Wesley, 1983.

    Google Scholar 

  18. Justin Graver, Ralph Johnson, “A Type System for Smalltalk”, POPL'90, 136–150.

    Google Scholar 

  19. 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. Bertrand Meyer, Object-oriented Software Construction, Prentice Hall, 1988.

    Google Scholar 

  21. 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. R. Milner, “A Proposal for Standard ML”, Proc. ACM Conf. on Lisp and Functional Programming, Austin, 1984.

    Google Scholar 

  23. 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. Craig Schaffert, Topher Cooper, Bruce Bullis, Mike Kilian, Carrie Wilpolt, “An Introduction to Trellis/Owl”, OOPSLA'86, pp. 9–16.

    Google Scholar 

  25. Alan Snyder, “Inheritance and the Development of Encapsulated Software, Components”, In Research Directions in Object-Oriented Programming, pp. 165–188.

    Google Scholar 

  26. M. Wand, “Type inference for record concatenation and multiple inheritance”, Porc. of LICS, 1989, pp. 92–97.

    Google Scholar 

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

Download references

Author information

Authors and Affiliations

Authors

Editor information

Ole Lehrmann Madsen

Rights and permissions

Reprints and permissions

Copyright information

© 1992 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Dodani, M., Tsai, CS. (1992). ACTS: A type system for object-oriented programming based on abstract and concrete classes. In: Madsen, O.L. (eds) ECOOP ’92 European Conference on Object-Oriented Programming. ECOOP 1992. Lecture Notes in Computer Science, vol 615. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0053044

Download citation

  • DOI: https://doi.org/10.1007/BFb0053044

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-55668-8

  • Online ISBN: 978-3-540-47268-1

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics