Abstract
Class specialization is undoubtedly one of the most original and powerful features of object orientation as it structures object models at all stages of software development. Unfortunately, the semantics of specialization is not defined with the same accuracy in the various fields. In programming languages, specialization is constrained by type theory and by a type safe policy, whereas its common sense semantics dates back to the Aristotelian tradition. The well known covariant vs. contravariant controversy originates here. In this paper, we investigate how modeling and programming languages deal with this mismatch. We claim that type errors are part of the real world, so they should be taken into account at all stages of software development. Modeling as well as programming languages should adopt a covariant policy.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
M. Abadi and L. Cardelli. On subtyping and matching. In W. Olthoff, editor, Proc. ECOOP’95, LNCS 952, pages 145–167. Springer-Verlag, 1995.
G. Ardourel and M. Huchard. Access graphs, another view on static access control for a better understanding and use. J. of Object Technology, 2002. (to appear).
G. Birtwistle, O. Dahl, B. Myhrhaug, and K. Nygaard. SIMULA Begin. Petrocelli Charter, New York (NY), USA, 1973.
D. Bobrow, L. DeMichiel, R. Gabriel, S. Keene, G. Kiczales, and D. Moon. Common Lisp Object System specification,. ACM SIGPLAN Notices, 23, 1988.
J. Boyland and G. Castagna. Type-safe compilation of covariant specialization: a practical case. In P. Cointe, editor, Proc. ECOOP’96, LNCS 1098, pages 3–25. Springer-Verlag, 1996.
C. Capponi, J. Euzenat, and J. Gensel. Objects, types and constraints as classification schemes. In G. Ellis, R. Levinson, A. Fall, and V. Dahl, editors, Int. Conf. on Knowledge Re-use, Storage and Efficiency (KRUSE’95), pages 69–73, 1995.
L. Cardelli. A semantics of multiple inheritance. In G. Kahn, D. McQueen, and G. Plotkin, editors, Semantics of Data Types, LNCS 173, pages 51–67. Springer-Verlag, Berlin, 1984.
G. Castagna. Object-oriented programming: a unified foundation. Progress in Theoretical Computer Science Series. Birkhaüser, 1997.
W. R. Cook. A proposal for making Eiffel type-safe. In S. Cook, editor, Proc. ECOOP’89, pages 57–70. Cambridge University Press, 1989.
F.-M. Donini, M. Lenzerini, D. Nardi, and A. Schaerf. Reasoning in description logics. In G. Brewka, editor, Principles of Knowledge Representation, pages 191–236. CSLI Publications, Stanford (CA), USA, 1996.
R. Ducournau. “Real World” as an argument for covariant specialization in programming and modeling. RR 02-083, L. I. R. M. M., Montpellier, France, 2002.
R. Ducournau and G. Pavillet. Langage à objets et logique de descriptions: un schéma d’intégration. In I. Borne and R. Godin, editors, Actes LMO’2001 in L’Objet vol. 7, pages 233–249. Hermès, 2001.
R. Godin, H. Mili, G. Mineau, R. Missaoui, A. Arfi, and T. Chau. Design of Class Hierarchies Based on Concept (Galois) Lattices. Theory and Practice of Object Systems, 4(2), 1998.
S. Greenspan, J. Mylopoulos, and A. Borgida. On formal requirements modeling languages: RML revisited. In Int. Conf. on Software Engineering (ICSE’94), 1994.
A. Koenig. Standard-the C++ language. Report ISO/IEC 14882:1998, Information Technology Council (NCTIS), 1998. http://www.nctis.org/cplusplus.htm.
H. Levesque and R. Brachman. Expressiveness and Tractability in Knowledge Representation and Reasoning. Computational Intelligence, 3(2):78–93, 1987.
B. Meyer. Eiffel: The Language. Prentice Hall Object-Oriented Series. Prentice Hall International, Hemel Hempstead, UK, 1992.
B. Meyer. Object-Oriented Software Construction. The Object-Oriented Series. Prentice-Hall, Englewood Cliffs (NJ), USA, second edition, 1997.
W. B. Mugridge, J. Hamer, and J. G. Hosking. Multi-methods in a statically-typed programming language. In P. America, editor, Proc. ECOOP’91, LNCS 512, pages 307–324. Springer-Verlag, 1991.
OMG. Unified Modeling Language specifications, v1.4. Technical report, Object Management Group, 2001.
D. Rayside and G. Campbell. An aristotelian understanding of object-oriented programming. In Proc. OOPSLA’00, SIGPLAN Notices, 35(10), pages 337–353. ACM Press, 2000.
D. Rayside and K. Kontogiannis. On the syllogistic structure of object-oriented programming. In Proc. of ICSE’01, pages 113–122, 2001.
J.-C. Royer. An Operational Approach to the Semantics of Classes: Application to Type Checking. Programming and Computer Software, 28(3), 2002. (to appear).
J. Rumbaugh, M. Blaha, W. Premerlani, F. Eddy, and W. Lorensen. Object Oriented Modeling and Design. Prentice-Hall, Englewood Cliffs (NJ), USA, 1991.
C. Szypersky, S. Omohundro, and S. Murer. Engineering a programming language: The type and class system of Sather. In Proc. of First Int. Conference on Programming Languages and System Architectures, LNCS 782. Springer Verlag, 1994.
F. Weber. Getting class correctness and system correctness equivalent — how to get covariant right. In R. Ege, M. Singh, and B. Meyer, editors, Technology of Object-Oriented Languages and Systems (TOOLS 8), pages 192–213, 1992.
W. Woods and J. Schmolze. The KL-ONE family. Computers & Mathematics with Applications, 23(2–5):133–177, 1992.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2002 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Ducournau, R. (2002). “Real World” as an Argument for Covariant Specialization in Programming and Modeling. In: Bruel, JM., Bellahsene, Z. (eds) Advances in Object-Oriented Information Systems. OOIS 2002. Lecture Notes in Computer Science, vol 2426. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-46105-1_2
Download citation
DOI: https://doi.org/10.1007/3-540-46105-1_2
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-44088-8
Online ISBN: 978-3-540-46105-0
eBook Packages: Springer Book Archive