ALGOL 68-R was the first implementation of the Algorithmic language ALGOL 68.
In December 1968 the report on the Algorithmic language ALGOL 68 was published. On 20–24 July 1970 a working conference was arranged by the IFIP to discuss the problems of implementation of the language, a small team from the Royal Radar Establishment attended to present their compiler, written by I.F. Currie, Susan G. Bond and J.D. Morrison. In the face of estimates of up to 100 man-years to implement the language, using up to 7 pass compilers they described how they had already implemented a one-pass compiler which was in production use in engineering and scientific applications.
The ALGOL 68-R compiler was initially written in a local dialect of ALGOL 60 with extensions for address manipulation and list processing. The parser was written using J.M. Foster's Syntax Improving Device (SID) parser generator.
-- Currie
The first version of the compiler occupied 34K words. It was later rewritten in ALGOL 68-R, taking around 36K words to compile most programs.
ALGOL 68-R was implemented under the GEORGE 3 operating system on an ICL 1907F. The compiler was distributed without charge by ICL on behalf of the RRE.
-- Mailloux
In order to allow one pass compilation ALGOL 68-R implemented a sub-set of the language defined in the original report:
Many of these restrictions were adopted by the revised report on ALGOL 68.
To allow compiling in one pass ALGOL 68-R insisted that all identifiers were specified (declared) before use.
The standard program:
would have to be re-written as:
To allow recursive declarations of modes (types) a special stub mode declaration was used to inform the compiler that an up-coming symbol was a mode rather than an operator:
In the standard language the proceduring coercion could, in a strong context, convert an expression of some type into a procedure returning that type. This could be used to implement call by name.