The Electrologica X1 and X8 Algol Compilers

Although two of the early Algol 60 compilers have been published in listing form (within pdf files) on the Internet, they do not appear to be available as text files which could be used to recreate the original executables or to modify to create new Algol 60 compilers.

On this page I refer to the original documents and associated documentation, and go on to offer my attempts to convert these listings into editable source files.

Because the original sources were prepared on Friden Flexowriter devices, with the Algol 60 compilers themselves using the Flexowriter character set and encoding, they cannot be represented exactly in 7- or 8-bit ASCII/ANSI/ISO encodings. In the past, a limitation like this would handled by using some form of markup such as HTML or TeX, but with the availability of support for Unicode encodings being more widespread, I have chosen to create these reconstituted text files in UTF-8 format, with utilities supplied to export the text in other formats such as HTML and 8-bit ISO-Latin1 text.

Due to the lack of support on this specific web host, plain text files in Unicode encodings will not display correctly, but the downloaded Unicode files should read mostly correct on most modern computers on-screen and in text editors. HTML-encoded versions of these files, which should look almost identical, are supplied here for viewing online.

Original documents which embed the source listings:

Associated documentation related to these compilers:

Rebuilt source for the Electrologica X1 Algol 60 compiler, written in Pascal

The embedded listing in the PDF file was good quality as it appeared to have been created from a textual source file (though that file doesn't appear to have been shared anywhere) but a simple cut & paste did not preserve the indentation. Therefore I extracted the text along with its x,y position within the page from the PDF and wrote a program to recreate the text listing with the correct indentation. The Pascal source file does not use any Flexowriter characters, so this file is in normal readable ASCII text.

Rebuilt source for the Electrologica X8 Algol 60 compiler, written in Algol 60

In the case of the Algol 60 source for the X8, I recreated the text from the OCR data in the PDF file. Unfortunately the quality of the OCR was terrible, with multiple errors on every line, so the text file is as much a re-keying as it is an OCRing. To simplify the re-keying (and considerably reduce the data-entry time) I did not copy the spacing of the original exactly (unlike what our team did in recreating the KDF-9 WAlgol!) - indeed in many cases I did not even approximate the indentation, relying on a later re-indentation using the original SOAP (if we can get it running again) or my own Algol 60 reformatter, which indeed I have used below. If I have time, I may go over this document again and restore some of the indentation by hand. Note that the Algol 60 source uses underlining for keyword stropping.

Electrologica X8 simulator in Algol 60 (1971)

From https://github.com/cwi-software-archive/EL-X8/blob/main/content/Simulator/X8Sa.a60

The following information is taken directly from:

Dick Grune's web site for the EL-X8


The EL-X8 Simulator X8S

The EL-X8 simulator X8S, written in Algol 60 at the Mathematisch Centrum in Amsterdam, allowed testing of EL-X8 assembly programs during normal operation hours.

The program X8S simulates machine instructions of the EL- X8; it was written entirely in Algol 60, without using special code procedures. The full instruction set of the CPU of the EL-X8 has been implemented, including memory protection and control state. The only component of the input/output processor CHARON that was implemented is the IP facility. The actions and reactions of the simulator during a run (tracing, unusual situations, etc.) are controlled by a Master program, written in a simple control language.

    The zip file contains three programs:
  1. The X8 simulator X8S in Algol 60 in two versions: one with underlined reserved words (X8S.a60u), and one with reserved words between single quotes (X8S.a60a).
  2. The accompanying Master program X8Sm.71.cdl, to be called by the tracing-facility of X8S.
  3. A machine-code program in ELAN, both for examining the EL-X8 computer and for testing the EL-X8 simulator X8S.

The Master program can be called from many places in the simulator program, and its first task is finding out what is going on. This requires a sequence of tests, similar to those in a parser. This being part of a compiler construction project, the Master program was written in CDL, the `Compiler Description Language' designed by Kees Koster.

The CDL processor supplied the Algol 60 code for the if-then-else-if-then structure, and the Algol 60 code for the actions was defined by macros. The CDL processor produced (compressed) Algol 60. The Algol 60 code produced by the CDL processor from the Master-program X8Sm.71.cdl can be seen in the program X8S, starting from line 449.

The simulator was described (in Dutch) in Beschrijving van de XS-simulator X8S (1972).