This Wiki page introduces the reader to the documentation and code of the Gier Algol 4 Compiler. The subject is thus the compiler itself, how it works, how the compiled code is organized and supported at run time, and so on. The intended audience is people who are interested in understanding the compiler (or some part of it) in detail. It is not an introduction to the Algol 60 language, nor an explanation of how to use the Gier Algol 4 system.
The approach is mainly to indicate places where detailed information can be found. As few explanations as possible will be given directly here.
To gain insight into the working of the Gier Algol 4 compiler, one is likely to require a considerable amount of work and study.
The Algol 60 language
For the definition of the Algol 60 programming language, please refer to the Revised Algol 60 report. In our library, we have Indledning til Algol og databehandling and Mere om Algol og databehandling which may be used as an introduction. Algol 60 code will likely be readable without major difficulties by people who are familiar with common programming languages like C or Java.
Using the Gier Algol 4 compiler
The Gier Algol 4 compiler
For the ultimate amount of details, one must refer to The complete annotated programs of Gier Algol 4, Volume I and Volume II. And not least, the machine-readable version typed in by Mogens Kjær.
A useful introduction and overview is provided by The design of the GIER ALGOL compiler, Part I and Part II. This paper deals with the first version of the Gier Algol compiler, but is nevertheless highly relevant for Gier Algol 4. The second article gives two hints how to increase the speed of the running ALGOL program by adding specific instructions to the GIER instruction set, creating a GIER/Turbo GIER ALGOL 4. Specific details for the Gier Algol 4 compiler are given in Pass actions, pass output, and storage organization in the Gier Algol 4 compiler. At DIKU's 40th Anniversary, Peter Naur presented useful diagrams of storage management during compilation and program execution.
Basics: Slip and all that
You will not get far into the Gier Algol 4 Compiler without reading the Gier machine code, written in the Slip format. A description of Gier machine code and Slip can be found in Lærebog i kodning for GIER bind 1, not forgetting the Rettelser til Lærebog i kodning for GIER, as well as Lærebog i kodning for GIER bind 2.
Mogens Kjærs Gier simulator
Much work and practice can, of course, make excellent use of the fabulous GIER/Simulator, produced by Mogens Kjær.