Algol 60
1 Implementation
2 Including Algol 60 Programs
include-algol
literal-algol
3 Language
8.15.0.4

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)

Includes the Algol 60 program indicated by path-string as an expression in a Racket program. The included Algol 60 program is closed (i.e., it doesn’t see any bindings in the included context), and the result is always #<void>.

syntax

(literal-algol string ...)

Evaluates the Algol 60 program indicated by the literal strings as an expression in a Racket program. The Algol 60 program is closed (i.e., it doesn’t see any bindings in the included context), and the result is always #<void>.

This is generally useful when combined with the at-exp reader, e.g.,
#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:

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.