1977: Lilith computer

In fall 1977, Niklaus Wirth, from the Institut für Informatik of ETH, initiated the development of a personal computer after returning from a sabbatical at Xerox PARC. Being unable to bring back a Xerox Alto from Palo Alto, he decided to build a system from scratch. The DISER Lilith was a computer based on an AMD 2901 bit-slice processor and had four hardware components: the system unit, the video display, the keyboard and the mouse. The Lilith was one of the first computer workstations worldwide with a high-resolution graphical display and a mouse.

The project included the following parts:

  • Design of the programming language Modula-2
  • Implementation of a multipass compiler suitable for relatively small computers
  • Development of a basic, single-user operating system including a file system and a linking loader
  • Design and implementation of a modern, flexible text editor taking full advantages of the computer’s capabilities
  • Implementation of a set of basic utility programs for file directory inspection, copying, renaming, deleting, and listing files
  • Programming and implementing an appropriate set of library modules for file handling, access to peripheral devices and storage management

The design of the Modula-2 language and the Lilith computer development were closely tight. The guiding principle was that this language would be the only one available on this computer. Especially, no assembler would be available, and hence, the language should be suitable for both high-level programming in a machine-independent manner and low-level programming of machine-particular aspects, such as device handling and storage allocation. In fact, the entire operating system, the compiler, the utility programs and the library modules were programmed exclusively in Modula-2. One principle of the Lilith project was that the hardware should be designed according to the programming language instead of vice-versa. The Lilith had an architecture specifically designed for Modula-2 (called the M-machine). Only the instructions that would be useful to the Modula-2 compiler had been included in the instruction set.

Debugger with windowing technique, 1981, Source: Archive D-INFK.

Another important part of the Lilith’s performance was its user interface, on which the greatest influence was Wirth’s experience with the Xerox Alto during its sabbatical. The Alto computer had a bit-mapped display and used a mouse for rapid cursor positioning. These strong features of the Alto, with some improvement that support the display without sacrificing performance, helped make the Lilith an effective and flexible workstation.

The main goal in the construction of the Lilith Workstation was its application in the educative field. Additionally, it was also used for administrative work at the institute. An attempt to commercialise the Lilith computer was undertaken in 1982 but was given up after a short time, even though the Lilith already at that time had all the characteristics which would distinguish the much more successful Macintosh, presented in 1985.

As technology evolved, together with Hans Eberle and later with Beat Heeb, Wirth began developing the Ceres series in 1984, presenting the first genuine 32-Bit computer a couple of years later. In 1990, the second revision of the system was finished and 100 Ceres-3 machines were produced in Switzerland which were used for the equipment of computer labs.

About Niklaus Wirth

Niklaus Emil Wirth (born 15 February 1934) is a Swiss computer scientist. He has designed several programming languages, including Pascal, and pioneered several classic topics in software engineering. In 1984 he won the Turing Award, generally recognized as the highest distinction in computer science, for developing a sequence of innovative computer languages.


Leave a comment

12 + six =

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Please Note:
You may use one of these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>