Algol 60
1 Implementation
The “Algol 60” language for DrRacket implements the language defined by the “Revised Report on the Algorithmic Language Algol 60,” edited by Peter Naur.
2 Including Algol 60 Programs
Although Algol 60 is mainly provided as a DrRacket language, include-algol supports limited use of Algol 60 programs in larger programs.
| (require algol60/algol60) | package: algol60 | 
syntax
(include-algol path-string)
syntax
(literal-algol string ...)
#lang at-exp racket @literal-algol{ begin printsln (`hello world') end } 
3 Language
The DrRacket and include-algol implementation departs from the Algol 60 specification in the following minor ways:
- Strings are not permitted to contain nested quotes. 
- Identifiers cannot contain whitespace. 
- Argument separators are constrained to be identifiers (i.e., they cannot be keywords, and they cannot consist of multiple identifiers separated by whitespace.) 
- Numbers containing exponents (using the “10” subscript) are not supported. 
Identifiers and keywords are case-sensitive. The boldface/underlined keywords of the report are represented by the obvious character sequence, as are most operators. A few operators do not fit into ASCII, and they are mapped as follows:
| times * | 
| quotient div | 
| exponential ^ | 
| less or equal <= | 
| greater or equal >= | 
| not equal != | 
| equivalence == | 
| implication => | 
| and & | 
| or | | 
| negation ! | 
In addition to the standard functions, the following output functions are supported:
| prints(E) prints the string E | 
| printsln(E) prints the string E followed by a newline | 
| printn(E) prints the number E | 
| printnln(E) prints the number E followed by a newline | 
A prompt in DrRacket’s interactions area accepts whole programs only for the Algol 60 language.