Advertisement

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

  • Clemens A. Szyperski
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 615)

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.

Keywords

Directed Acyclie Graph Information Hiding Module Concept Modularization Concept Class Construct 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. [Ada80]
    Reference Manual for the Ada Programming Language — Proposed Standard Document, United States Dep. of Defense. July 1980.Google Scholar
  2. [AG91]
    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. [BDM*73]
    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. [Bow80]
    K.L. Bowles. Beginner's Guide for the UCSD Pascal System. Byte Books, Peterborough, NH. 1980.Google Scholar
  5. [Car89]
    L. Cardelli. Typeful Programming. (Quest Language). Research Report 45, DEC Systems Research Center, Palo Alto, CA. May 1989.Google Scholar
  6. [CDG*88]
    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. [CHC90]
    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. [DG87]
    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. [DMN68]
    O.-J. Dahl, B. Myrhaug, K. Nygaard. SIMULA 67 Common Base. Norwegian Computing Center, Oslo. 1968.Google Scholar
  10. [GR83]
    A. Goldberg, D. Robson. Smalltalk-80: The Language and Its Implementation. Addison-Wesley, Reading, MA. 1983.Google Scholar
  11. [Gri91]
    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. [HCU91]
    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. [KMM*87]
    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. [KMM*90]
    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. [KR78]
    B.W. Kernighan, D.M. Ritchie. The C Programming Language. Prentice-Hall, Englewood Cliffs, NJ. 1978.Google Scholar
  16. [Mey88]
    B. Meyer. Object-Oriented Software Construction. (Eiffel Language). Prentice-Hall, Englewood Cliffs, NJ. 1988.Google Scholar
  17. [MMS79]
    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. [MW91]
    H. Mössenböck, N. Wirth. The Programming Language Oberon-2. Structured Programming, 12:4, 1991.Google Scholar
  19. [Ode89]
    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. [Omo91]
    S.M. Omohundro. The Sather Language. Technical Report TR-91-34, International Computer Science Institute, Berkeley, CA. June 1991.Google Scholar
  21. [Par72]
    D.L. Parnas. On the criteria to be used in decomposing systems into modules. Comm. ACM, 15:12, 1053–1058. December 1972.CrossRefGoogle Scholar
  22. [RLW85]
    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. [Str86]
    B. Stroustrup. The C++ Programming Language. Addison-Wesley, Reading, MA. 1986.Google Scholar
  24. [Tes85]
    L. Tesler. Object-Pascal Report. Structured Programming (was: Structured Language World), 9:3, 10–17. 1985.Google Scholar
  25. [US87]
    D. Ungar, R.B. Smith. Self: The Power of Simplicity. Conf. Proc. OOPSLA '87, Orlando, FL. October 1987.Google Scholar
  26. [WG89]
    N. Wirth, J. Gutknecht. The Oberon System. Software — Practice and Experience, 19:9. September 1989.Google Scholar
  27. [WG92]
    N. Wirth, J. Gutknecht. The Oberon System. Addison-Wesley, Reading, MA. 1992.Google Scholar
  28. [Wil91]
    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. [Wir82]
    N. Wirth. Programming in Modula-2 (fourth edition). Texts and Monographs in Computer Science. Springer-Verlag, Berlin. 1988. First edition: 1982.Google Scholar
  30. [Wir88a]
    N. Wirth. Type Extensions. ACM Trans. Programming Languages and Systems, 10:2, 204–214. July 1988.zbMATHCrossRefGoogle Scholar
  31. [Wir88b]
    N. Wirth. The Programming Language Oberon. Software — Practice and Experience, 18:7, 671–690. July 1988.zbMATHGoogle Scholar
  32. [WW88]
    A. Wirfs-Brock, B. Wilkerson. An Overview of Modular Smalltalk. Conf. Proc. OOPSLA '88, San Diego, CA. September 1988.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1992

Authors and Affiliations

  • Clemens A. Szyperski
    • 1
  1. 1.Institute for Computer SystemsSwiss Federal Institute of Technology (ETH Zurich)Switzerland

Personalised recommendations