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.
References
Pierre America. A proof theory for a sequential version of POOL. ESPRIT Project 415 Document 188, Philips Research Laboratories, Eindhoven, the Netherlands, October 1986.
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.
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.
Pierre America. Issues in the design of a parallel object-oriented language. Formal Aspects of Computing, 1(4):366–411, 1989.
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.
Luca Cardelli. A semantics of multiple inheritance. Information and Computation, 76:138–164, 1988.
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.
Ole-Johan Dahl and Kristen Nygaard. Simula: An ALGOL-based simulation language. Communications of the ACM, 9(9):671–678, September 1966.
Adele Goldberg and David Robson. Smalltalk-80, The Language and its Implementation. Addison-Wesley, 1983.
C. A. R. Hoare. Proof of correctness of data representations. Acta Informatica, 1:271–281, 1972.
Bertrand Meyer. Object-Oriented Software Construction. Prentice-Hall, 1988.
John C. Mitchell. Polymorphic type inference and containment. Information and Computation, 76:211–249, 1988.
Mark Stefik and Daniel G. Bobrow. Object-oriented programming: Themes and variations. AI Magazine, 6(4):40–62, January 1986.
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.
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.
William A. Wulf, Roy Levin, and Samuel P. Harbison. HYDRA/C.mmp: An Experimental Computer System. McGraw-Hill, 1981.
Author information
Authors and Affiliations
Editor information
Rights 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