The module: A system structuring facility in high-level programming languages

  • Niklaus Wirth
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 79)


The key to successful programming is finding the "right" structure of data and program. A programming language concept called module is presented here as a means to partition systems effectively. The module allows to encapsulate local details and to specify explicitly those elements that are part of the interface between modules.

Modules as presented here are part of the language Modula-2. Problems of separate compilation and of splitting a module into definition (interface) and implementation parts are discussed.


Exception Handler Abstract Data Type Definition Module Implementation Module Implementation Part 
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.


  1. [1]
    P. Brinch Hansen. The programming language Concurrent Pascal. IEEE Trans. Software Eng., 1, 2, 199–207 (1975)Google Scholar
  2. [2]
    O.J. Dahl, K. Nygaard. Simula — An Algol-based simulation language. Comm. ACM 9, 9, 671–678 (Sept. 1966)Google Scholar
  3. [3]
    Ch. M. Geschke, J.H. Morris, E.H. Satterthwaite. Early experience with Mesa. Comm. ACM, 20, 8, 540–553 (Aug. 1977)Google Scholar
  4. [4]
    C.A. R. Hoare. Record handling; in Programming Languages, F. Genuys, Ed., London and New York, 1968. (pp. 291–347)Google Scholar
  5. [5]
    C.A. R. Hoare. Monitors: An operating system structuring concept. Comm. ACM, 17, 10, 549–557 (1974)Google Scholar
  6. [6]
    H. Lienhard. The real-time programming language PORTAL. R. Schild. Parallel processes in PORTAL, exemplified in a group project. Landis & Gyr Review 25, 2, 2–16 (1978)Google Scholar
  7. [7]
    B. Liskov et al. CLU Reference Manual. Computation Structures Group Memo 161. MIT Lab. for Comp. Sci. July 1978Google Scholar
  8. [8]
    N. Wirth and C.A. R. Hoare. A contribution to the development of Algol. Comm. ACM, 9, 6, 413–432 (June 1966)Google Scholar
  9. [9]
    N. Wirth. The programming language Pascal. Acta Informatica 1, 35–63 (1971).Google Scholar
  10. [10]
    N. Wirth. Modula: A language for modular multiprogramming. Software — Practice and Experience, 7, 3–35 (1977)Google Scholar
  11. [11]
    N. Wirth. Modula-2. Tech. Report 27, Institut für Informatik ETH. Zürich, Dec. 1978.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1980

Authors and Affiliations

  • Niklaus Wirth
    • 1
  1. 1.Institut für Informatik ETH-ZentrumZürich

Personalised recommendations