In the years 1977 to 1981 Prof. N. Wirth developed Modula-2 as a further member of the family of the Algol, Pascal and Modula programming languages. Whereas Pascal had been designed as a general purpose language and after implementation in 1970 has gained wide usage, Modula had emerged from experiments in multiprogramming and concentrated therefore on relevant aspects of that field of application.
In 1977, a research project with the goal of designing a computer system (hardware and software) in an integrated approach) was launched at the Institut fur Informatik of the ETH ZUrich.
This system (later to be called Lilith was to be programed in a single high-level language which therefore had to satisfy requirements of a high-level system design as well as those of low-level programming of parts which interact closely with the given hardware. Modula-2 enlarged from careful design deliberations as a language which includes all aspects of Pascal and extends them with the important module concept and with those of multiprogramming.”
Some of the main features of Modula-2 are:
• separate compilation of program modules,
• strong type checking,
• comprehensive runtime tests.
• structured data types,
• dynamic data types,
• nested program structures~
• procedure types,
• the support of parallel processes (co-routines) and
• system-dependent language properties (low-level facilities).