The module: A system structuring facility in high-level programming languages
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.
KeywordsException Handler Abstract Data Type Definition Module Implementation Module Implementation Part
- P. Brinch Hansen. The programming language Concurrent Pascal. IEEE Trans. Software Eng., 1, 2, 199–207 (1975)Google Scholar
- O.J. Dahl, K. Nygaard. Simula — An Algol-based simulation language. Comm. ACM 9, 9, 671–678 (Sept. 1966)Google Scholar
- Ch. M. Geschke, J.H. Morris, E.H. Satterthwaite. Early experience with Mesa. Comm. ACM, 20, 8, 540–553 (Aug. 1977)Google Scholar
- C.A. R. Hoare. Record handling; in Programming Languages, F. Genuys, Ed., London and New York, 1968. (pp. 291–347)Google Scholar
- C.A. R. Hoare. Monitors: An operating system structuring concept. Comm. ACM, 17, 10, 549–557 (1974)Google Scholar
- 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
- B. Liskov et al. CLU Reference Manual. Computation Structures Group Memo 161. MIT Lab. for Comp. Sci. July 1978Google Scholar
- N. Wirth and C.A. R. Hoare. A contribution to the development of Algol. Comm. ACM, 9, 6, 413–432 (June 1966)Google Scholar
- N. Wirth. The programming language Pascal. Acta Informatica 1, 35–63 (1971).Google Scholar
- N. Wirth. Modula: A language for modular multiprogramming. Software — Practice and Experience, 7, 3–35 (1977)Google Scholar
- N. Wirth. Modula-2. Tech. Report 27, Institut für Informatik ETH. Zürich, Dec. 1978.Google Scholar