A high-level programming language designed by Niklaus Wirth at ETH in 1978. It is a derivative of Pascal with well-defined interfaces between modules, and facilities for parallel computation. Modula-2 was developed as the system language for the Lilith workstation.
The central concept is the module which may be used to encapsulate a set of related subprograms and data structures, and restrict their visibility from other portions of the program. Each module has a definition part giving the interface, and an implementation part.
The language provides limited single-processor concurrency (monitors, coroutines and explicit transfer of control) and hardware access (absolute addresses and interrupts). It uses name equivalence.
["Programming in Modula-2", N. Wirth, Springer 1985].