Strong typing of object-oriented languages revisited

This paper is concerned with the relation between <italic>subtyping</italic> and <italic>subclassing</italic> and their influence on programming language design. Traditionally subclassing as introduced by Simula has also been used for defining a hierarchical type system. The type system of a language can be characterized as <italic>strong</italic> or <italic>weak</italic> and the type checking mechanism as <italic>static</italic> or <italic>dynamic</italic>. Parameterized classes in combination with a hierarchical type-system is an example of a language construct that is known to create complicated type checking situations. In this paper these situations are analyzed and several different solutions are found. It is argued that an approach with a combination of static and dynamic type checking gives a reasonable balance also here. It is also concluded that this approach makes it possible to base the type system on the class/subclass mechanism.

[1]  Bent Bruun Kristensen,et al.  Syntax Directed Program Modularization , 1982 .

[2]  William R. Cook,et al.  A Proposal for Making Eiffel Type-Safe , 1989, Comput. J..

[3]  Craig Schaffert,et al.  An introduction to Trellis/Owl , 1986, OOPSLA 1986.

[4]  Kristen Nygaard,et al.  The development of the SIMULA languages , 1978, SIGP.

[5]  Bjarne Stroustrup,et al.  C++ Programming Language , 1986, IEEE Softw..

[6]  David Robson,et al.  Smalltalk-80: The Language and Its Implementation , 1983 .

[7]  William R. Cook,et al.  Interfaces for strongly-typed object-oriented programming , 1989, OOPSLA 1989.

[8]  Ole Lehrmann Madsen,et al.  What Object-Oriented Programming May Be - and What It Does Not Have To Be , 1988, ECOOP.

[9]  Al Stevens,et al.  C programming , 1990 .

[10]  Ole Lehrmann Madsen,et al.  Virtual classes: a powerful mechanism in object-oriented programming , 1989, OOPSLA 1989.

[11]  Kristen Nygaard Basic concepts in object oriented programming , 1986 .

[12]  Jens Palsberg,et al.  Substitution Polymorphism for Object-Oriented Programming , 1990 .

[13]  Bent Bruun Kristensen,et al.  The BETA Programming Language , 1987, Research Directions in Object-Oriented Programming.

[14]  John F. Wakerly,et al.  The programming language PASCAL , 1979, Microprocessors and microsystems.

[15]  Ole Lehrmann Madsen,et al.  Virtual classes: a powerful mechanism in object-oriented programming , 1989, OOPSLA '89.

[16]  簡聰富,et al.  物件導向軟體之架構(Object-Oriented Software Construction)探討 , 1989 .

[17]  Kristen Nygaard Basic concepts in object oriented programming , 1986, OOPWORK '86.