Abstract
The design of many popular object-oriented languages like Smalltalk, Eiffel, or Sather follows a certain trend: The class is the only structuring form. In this paper, the need for having modules besides classes is claimed. Modules stem from a different language family and at first glance it seems that they can easily be unified with classes. Among other things, unifying modules and classes carries the danger of unifying the import and inheritance relationships. Constructs in several languages are discussed that indicate that modules and classes should indeed be kept separate.
Preview
Unable to display preview. Download preview PDF.
References
Reference Manual for the Ada Programming Language — Proposed Standard Document, United States Dep. of Defense. July 1980.
A.J. Alencar, J.A. Goguen. OOZE: An Object-Oriented Z Environment. Conf. Proc. ECOOP '91, Geneva, Switzerland. Lecture Notes in Computer Science 512, Springer-Verlag, Berlin. July 1991.
G.M. Birtwistle, O.-J. Dahl, B. Myhrhaug, K. Nygaard. SIMULA BEGIN (second edition). Van Nostrand Reinhold, New York, NY. 1979. First edition: 1973.
K.L. Bowles. Beginner's Guide for the UCSD Pascal System. Byte Books, Peterborough, NH. 1980.
L. Cardelli. Typeful Programming. (Quest Language). Research Report 45, DEC Systems Research Center, Palo Alto, CA. May 1989.
L. Cardelli, J. Donahue, L. Glassmann, M. Jordan, B. Kalsow, G. Nelson. Modula-3 Report. Research Report 31, DEC Systems Research Center, Palo Alto, CA. August 1988.
W. Cook, W, Hill, P. Canning. Inheritance is not subtyping. Proc. POPL '90. ACM Press, January 1990. Also: ACM Trans. on Progr. Lang. and Systems. 125–135, 1990.
L.G. DeMichiel, R.P. Gabriel. The Common Lisp Object System: An Overview. (CLOS). Conf. Proc. ECOOP '87, Paris. Lecture Notes in Computer Science 276, Springer-Verlag, Berlin. June 1987.
O.-J. Dahl, B. Myrhaug, K. Nygaard. SIMULA 67 Common Base. Norwegian Computing Center, Oslo. 1968.
A. Goldberg, D. Robson. Smalltalk-80: The Language and Its Implementation. Addison-Wesley, Reading, MA. 1983.
R. Griesemer. On the Linearization of Graphs and Writing Symbol Files. Technical Report 156, Institute for Computer Systems, ETH Zurich, Switzerland. March 1991.
U. Hölzle, C. Chambers, D. Ungar. Optimizing Dynamically-Typed Object-Oriented Languages with Polymorphic Inline Caches. Conf. Proc. ECOOP '91, Geneva, Switzerland. Lecture Notes in Computer Science 512, Springer-Verlag, Berlin. July 1991.
B.B. Kristensen, O.L. Madsen, B. MØller-Pedersen, K. Nygaard. The BETA Programming Language. In: B.D. Shriver, P. Wegner (Eds.), Research Directions in Object-Oriented Programming. MIT Press. 1987.
B.B. Kristensen, O.L. Madsen, B. MØller-Pedersen, K. Nygaard. Object-Oriented Programming in the BETA Programming Language. Draft of an upcoming book. October 1990.
B.W. Kernighan, D.M. Ritchie. The C Programming Language. Prentice-Hall, Englewood Cliffs, NJ. 1978.
B. Meyer. Object-Oriented Software Construction. (Eiffel Language). Prentice-Hall, Englewood Cliffs, NJ. 1988.
J.C. Mitchell, W. Mayburry, R. Sweet. Mesa language manual. Technical Report CSL-79-3, Xerox PARC, Palo Alto, CA. April 1979.
H. Mössenböck, N. Wirth. The Programming Language Oberon-2. Structured Programming, 12:4, 1991.
M. Odersky. Extending Modula-2 for Object-Oriented Programming. (Modula-90 Language). Proc. First Int. Modula-2 Conf., Bled, Yugoslavia. October 1989.
S.M. Omohundro. The Sather Language. Technical Report TR-91-34, International Computer Science Institute, Berkeley, CA. June 1991.
D.L. Parnas. On the criteria to be used in decomposing systems into modules. Comm. ACM, 15:12, 1053–1058. December 1972.
P. Rovner, R. Levin, J. Wick. On extending Modula-2 for building large, integrated systems. (Modula-2+ Language). Research Report 3, DEC Systems Research Center, Palo Alto, CA. January 1985.
B. Stroustrup. The C++ Programming Language. Addison-Wesley, Reading, MA. 1986.
L. Tesler. Object-Pascal Report. Structured Programming (was: Structured Language World), 9:3, 10–17. 1985.
D. Ungar, R.B. Smith. Self: The Power of Simplicity. Conf. Proc. OOPSLA '87, Orlando, FL. October 1987.
N. Wirth, J. Gutknecht. The Oberon System. Software — Practice and Experience, 19:9. September 1989.
N. Wirth, J. Gutknecht. The Oberon System. Addison-Wesley, Reading, MA. 1992.
A. Wills. Capsules and Types in Fresco — Program Verification in Smalltalk. Conf. Proc. ECOOP '91, Geneva, Switzerland. Lecture Notes in Computer Science 512, Springer-Verlag, Berlin. July 1991.
N. Wirth. Programming in Modula-2 (fourth edition). Texts and Monographs in Computer Science. Springer-Verlag, Berlin. 1988. First edition: 1982.
N. Wirth. Type Extensions. ACM Trans. Programming Languages and Systems, 10:2, 204–214. July 1988.
N. Wirth. The Programming Language Oberon. Software — Practice and Experience, 18:7, 671–690. July 1988.
A. Wirfs-Brock, B. Wilkerson. An Overview of Modular Smalltalk. Conf. Proc. OOPSLA '88, San Diego, CA. September 1988.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1992 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Szyperski, C.A. (1992). Import is not inheritance why we need both: Modules and 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/BFb0053028
Download citation
DOI: https://doi.org/10.1007/BFb0053028
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