Click on the above image to enlarge

World’s First Algol 68 Compiler

Computers work with binary “1”s and “0”s. This is known as machine code or first generation language. In contrast, people generally work with verbs, nouns, grammar etc. Languages like English, however, contain ambiguities whereas a computer needs precise, unambiguous instructions in order to perform its tasks.

This gap was initially filled by use of low-level “assembler”, or second generation, languages which provided a small set of instructions such as Load (LDX), Store (STO), Add (ADD) and require the human programmer to know how the computer operates to move or manipulate data. An assembler takes assembly level language and converts it into machine code.

A high level, or third generation, language is nearer to a human language and yet is rigorously defined to remove ambiguities. These enable named variables to be created and data to be manipulated in a more generic way, independent of the particular computer that is going to run that program. A compiler converts a high level language into machine code.

One of the earliest high level computer languages was Fortran (“FORmula TRANslation”) developed by a team at IBM led by John Backus, and was first published in 1957. This was initially used primarily by mathematicians. Other languages were also developed including Algol 60 (ALGOrithmic Language) which aimed to introduce more structure and be easier to teach and to learn than Fortran.

RRE (Royal Radar Establishment) developed and used their own Algol 60 compiler on their self-built computer, RREAC (RRE Automatic Computer), and had used that extensively for the establishment computer programming from when it was introduced in 1963.

These early languages evolved and further languages were created. The International Federation for Information Processing (IFIP) developed a more powerful, expressional language, Algol 68 and published its definition in December 1968.

RRE computing and software research department developed ALGOL 68-R – the world’s first compiler implementation of the Algorithmic language ALGOL 68.

This was announced during 20–24 July 1970 at a working conference arranged by the IFIP to discuss the problems of implementation Algol 68. The compiler writers were Ian Currie, Susan Bond and John Morrison and they attended this conference along with the superintendent, Philip Woodward. They astounded the attendees – who had made estimates of up to 100 man-years to implement the language, using up to 7 pass compilers – when they described how they had already implemented a one-pass compiler which was in production use in engineering and scientific applications. Proof had to be provided by sending a program back to Malvern for compiling and running.

The ALGOL 68-R compiler was initially written using the RRE ALGOL 60 compiler including extensions for address manipulation and list processing but stripped out of features such as real number handling which made it more suitable and more focused on compiling a complier. The parser (the way of identifying the structure of the input) was written using Michael Foster’s (also from the same department) Syntax Improving Device (SID) parser generator.

The Algol 68R compiler occupied 34K (24bit) words, of which about 20K was program, which the team felt was too large! It was later rewritten in ALGOL 68-R taking around 36K words to compile most programs.

Algol 68R was implemented under the GEORGE 3 operating system on the RRE ICL 1907F computer. The compiler was distributed without charge by ICL on behalf of the RRE and hence available to many other organisations, including most UK universities. The establishment replaced their 1907F computer with the top of the range ICL 1906S computer:

The team made some adjustments to the language and many of these were adopted by the revised report on Algol 68.

The formal language definition was so unaccommodating that widespread curiosity about the language was frustrated until a narrative guide compiled by Philip Woodward and Susan Bond was put on sale by HM Stationery Office and sold all of its 17,000 copies.

With the advent of other ranges of computers, the team produced Algol 68RS, a portable, two pass compiler – the first pass being generic, the second pass being computer specific. Algol 68RS compilers were developed for ICL 2900 VME, Honeywell Multics, and DEC VAX VMS computer ranges. A new version of the Algol 68 User Guide was also produced again written by Philip and Susan.

The implementation of any new language calls for software of the highest calibre. The Ministry of Defence (MoD) headquarters found it difficult to monitor work of this nature and felt obliged to call in a leading American software house for independent assessment. The emissary, remembered by the examinees for his theatrical arrival in a white Porsche, reported that in Malvern the MoD had a ‘crack team using software techniques in advance of any to be found in private industry in the US’.

© MRATHS 2018 Produced by G D Whitaker