Skip to main content

Import is not inheritance why we need both: Modules and classes

  • Conference paper
  • First Online:
Book cover ECOOP ’92 European Conference on Object-Oriented Programming (ECOOP 1992)

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

Included in the following conference series:

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.

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

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Reference Manual for the Ada Programming Language — Proposed Standard Document, United States Dep. of Defense. July 1980.

    Google Scholar 

  2. 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.

    Google Scholar 

  3. G.M. Birtwistle, O.-J. Dahl, B. Myhrhaug, K. Nygaard. SIMULA BEGIN (second edition). Van Nostrand Reinhold, New York, NY. 1979. First edition: 1973.

    Google Scholar 

  4. K.L. Bowles. Beginner's Guide for the UCSD Pascal System. Byte Books, Peterborough, NH. 1980.

    Google Scholar 

  5. L. Cardelli. Typeful Programming. (Quest Language). Research Report 45, DEC Systems Research Center, Palo Alto, CA. May 1989.

    Google Scholar 

  6. 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.

    Google Scholar 

  7. 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.

    Google Scholar 

  8. 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.

    Google Scholar 

  9. O.-J. Dahl, B. Myrhaug, K. Nygaard. SIMULA 67 Common Base. Norwegian Computing Center, Oslo. 1968.

    Google Scholar 

  10. A. Goldberg, D. Robson. Smalltalk-80: The Language and Its Implementation. Addison-Wesley, Reading, MA. 1983.

    Google Scholar 

  11. R. Griesemer. On the Linearization of Graphs and Writing Symbol Files. Technical Report 156, Institute for Computer Systems, ETH Zurich, Switzerland. March 1991.

    Google Scholar 

  12. 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.

    Google Scholar 

  13. 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.

    Google Scholar 

  14. 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.

    Google Scholar 

  15. B.W. Kernighan, D.M. Ritchie. The C Programming Language. Prentice-Hall, Englewood Cliffs, NJ. 1978.

    Google Scholar 

  16. B. Meyer. Object-Oriented Software Construction. (Eiffel Language). Prentice-Hall, Englewood Cliffs, NJ. 1988.

    Google Scholar 

  17. J.C. Mitchell, W. Mayburry, R. Sweet. Mesa language manual. Technical Report CSL-79-3, Xerox PARC, Palo Alto, CA. April 1979.

    Google Scholar 

  18. H. Mössenböck, N. Wirth. The Programming Language Oberon-2. Structured Programming, 12:4, 1991.

    Google Scholar 

  19. M. Odersky. Extending Modula-2 for Object-Oriented Programming. (Modula-90 Language). Proc. First Int. Modula-2 Conf., Bled, Yugoslavia. October 1989.

    Google Scholar 

  20. S.M. Omohundro. The Sather Language. Technical Report TR-91-34, International Computer Science Institute, Berkeley, CA. June 1991.

    Google Scholar 

  21. D.L. Parnas. On the criteria to be used in decomposing systems into modules. Comm. ACM, 15:12, 1053–1058. December 1972.

    Article  Google Scholar 

  22. 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.

    Google Scholar 

  23. B. Stroustrup. The C++ Programming Language. Addison-Wesley, Reading, MA. 1986.

    Google Scholar 

  24. L. Tesler. Object-Pascal Report. Structured Programming (was: Structured Language World), 9:3, 10–17. 1985.

    Google Scholar 

  25. D. Ungar, R.B. Smith. Self: The Power of Simplicity. Conf. Proc. OOPSLA '87, Orlando, FL. October 1987.

    Google Scholar 

  26. N. Wirth, J. Gutknecht. The Oberon System. Software — Practice and Experience, 19:9. September 1989.

    Google Scholar 

  27. N. Wirth, J. Gutknecht. The Oberon System. Addison-Wesley, Reading, MA. 1992.

    Google Scholar 

  28. 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.

    Google Scholar 

  29. N. Wirth. Programming in Modula-2 (fourth edition). Texts and Monographs in Computer Science. Springer-Verlag, Berlin. 1988. First edition: 1982.

    Google Scholar 

  30. N. Wirth. Type Extensions. ACM Trans. Programming Languages and Systems, 10:2, 204–214. July 1988.

    Article  MATH  Google Scholar 

  31. N. Wirth. The Programming Language Oberon. Software — Practice and Experience, 18:7, 671–690. July 1988.

    MATH  Google Scholar 

  32. A. Wirfs-Brock, B. Wilkerson. An Overview of Modular Smalltalk. Conf. Proc. OOPSLA '88, San Diego, CA. September 1988.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Ole Lehrmann Madsen

Rights and permissions

Reprints 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

Publish with us

Policies and ethics