Lilith and Modula-2
The programming language Modula-2 was authored by Professor Niklaus Wirth of the Institut fur Informatik of the Swiss Federal Institute of Technology (ETH) in 1979. A joint software / hardware project, in conjunction with the language development produced the advanced programmers' workstation Lilith in 1980. Software developed for the Lilith computer included a compiler, operating system, text and graphic editors and other support software:
Multi-Pass Modula-2 Compiler
Professor Niklaus Wirth has kindly given us permission to make the following items publicly available here:
The first Modula-2 compiler was completed in 1979 and ran on the DEC PDP-11. This is the source code of the PC version of the second Modula-2 compiler. It generates M-code for the Lilith and can be compiled and run on a PC using the M2M-PC System (see below). The following text document files are included with the sources:
The appendix includes a table of the M-Code instructions and the Modula-2 source of the M-Code intepreter providing a high-level definition of the Lilith computer's instruction set and architecture.
The M2M-PC System is an M-code interpreter which allows the Lilith Modula-2 compiler and its output to be executed on the IBM-PC running MS-DOS 2.0 or later. It can also be run on a Windows XP system under cmd.exe. Refer to the Modula-2 Handbook for instructions on how to use the system:
Single-Pass Modula-2 Compiler
The third Lilith Modula-2 compiler was released in 1985. It is a single-pass compiler developed by J. Gutknecht and N. Wirth and compiles about four times faster than the earlier multi-pass compiler. An executable version of this compiler runs on the Lilith emulator EmuLith but a copy of the source code cannot currently (Jul 2009) be located.
This source code is of a version of the single-pass compiler which generates native code for the Motorola MC68000 and MC68040 microprocessors. Refer to the file copyright contained in the zip file for the relevant licensing conditions.
Two versions of the compiler are included. They correspond to the versions of the language as described in the Third (1985) and Fourth Editions (1988) of the reference:
Programming in Modula-2, N. Wirth, published by Springer-Verlag.
These compilers are used in the Apple Macintosh Modula-2 system MacMETH. The MacMETH User Manual contains detailed operational information about the compilers:
MacMETH 3.2. A Fast Modula-2 Language System For the Apple Macintosh
- User Manual.
A copy of this manual can be downloaded from the MacMeth website
ABN 20 939 391 060