Skip to main content

Designing an object-oriented programming language with behavioural subtyping

  • Technical Contributions
  • Conference paper
  • First Online:

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

Abstract

This paper describes the design of the parallel object-oriented programming language POOL-I. We concentrate on the type system of the language and specifically on the aspects of subtyping and genericity. POOL-I is the first language we know of that includes subtyping and inheritance as completely separate language mechanisms. By decoupling these two, which have been strongly tied together in other statically typed object-oriented languages with inheritance, a much cleaner language design can be obtained and a much more flexible use of both mechanisms can be made in actual programs.

In POOL-I subtyping is based only on the externally observable behaviour of objects. This includes not only their signature (the names of available methods and their parameter and result types) but also more detailed information about this behaviour. We also present a preliminary formalism in which these properties can be specified. Finally we introduce the more advanced features of the POOL-I type system, such as bounded genericity and dynamic type manipulation.

The work described in this paper was done in the context of ESPRIT Basic Research Action 3020, Integration.

This is a preview of subscription content, log in via an institution.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Pierre America. A proof theory for a sequential version of POOL. ESPRIT Project 415 Document 188, Philips Research Laboratories, Eindhoven, the Netherlands, October 1986.

    Google Scholar 

  2. Pierre America. Inheritance and subtyping in a parallel object-oriented language. In ECOOP '87: European Conference on Object-Oriented Programming, Paris, France, June 15–17, 1987. Springer Lecture Notes in Computer Science, Volume 276, pages 234–242.

    Google Scholar 

  3. Pierre America. POOL-T: A parallel object-oriented language. In Akinori Yonezawa and Mario Tokoro, editors, Object-Oriented Concurrent Programming, pages 199–220. MIT Press, 1987.

    Google Scholar 

  4. Pierre America. Issues in the design of a parallel object-oriented language. Formal Aspects of Computing, 1(4):366–411, 1989.

    Google Scholar 

  5. Pierre America and Frank van der Linden. A parallel object-oriented language with inheritance and subtyping. In Proceedings of the ECOOP/OOPSLA Conference, Ottawa, Canada, October, 21–25, 1990.

    Google Scholar 

  6. Luca Cardelli. A semantics of multiple inheritance. Information and Computation, 76:138–164, 1988.

    Google Scholar 

  7. William Cook, Walt Hill, and Peter Canning. Inheritance is not subtyping. Report STL-89-17, Hewlett-Packard Laboratories, Palo Alto, California, July 1989. In Proceedings of the ACM SIGACT-SIGPLAN Symposium on Principles of Programming Languages (POPL), January 17–19, 1990.

    Google Scholar 

  8. Ole-Johan Dahl and Kristen Nygaard. Simula: An ALGOL-based simulation language. Communications of the ACM, 9(9):671–678, September 1966.

    Google Scholar 

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

    Google Scholar 

  10. C. A. R. Hoare. Proof of correctness of data representations. Acta Informatica, 1:271–281, 1972.

    Google Scholar 

  11. Bertrand Meyer. Object-Oriented Software Construction. Prentice-Hall, 1988.

    Google Scholar 

  12. John C. Mitchell. Polymorphic type inference and containment. Information and Computation, 76:211–249, 1988.

    Google Scholar 

  13. Mark Stefik and Daniel G. Bobrow. Object-oriented programming: Themes and variations. AI Magazine, 6(4):40–62, January 1986.

    Google Scholar 

  14. Craig Schaffert, Topher Cooper, Bruce Bullis, Mike Kilian, and Carrie Wilpolt. An introduction to Trellis/Owl. In Proceedings of the ACM Conference on Object-Oriented Programming, Systems, Languages and Applications (OOPSLA), Portland, Oregon, September 1986, pages 9–16.

    Google Scholar 

  15. Alan Snyder. Encapsulation and inheritance in object-oriented programming languages. In Proceedings of the ACM Conference on Object-Oriented Programming, Systems, Languages and Applications (OOPSLA), Portland, Oregon, September 1986, pages 38–45.

    Google Scholar 

  16. William A. Wulf, Roy Levin, and Samuel P. Harbison. HYDRA/C.mmp: An Experimental Computer System. McGraw-Hill, 1981.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

J. W. de Bakker W. P. de Roever G. Rozenberg

Rights and permissions

Reprints and permissions

Copyright information

© 1991 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

America, P. (1991). Designing an object-oriented programming language with behavioural subtyping. In: de Bakker, J.W., de Roever, W.P., Rozenberg, G. (eds) Foundations of Object-Oriented Languages. REX 1990. Lecture Notes in Computer Science, vol 489. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0019440

Download citation

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

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-53931-5

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

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics