Interactive ALGOL 68
The Interactive ALGOL 68 compiler for ALGOL 68 was made available by Peter Craven of Algol Applications from 1984. Then in 1994 from OCCL until 2004.
Platforms
- Inmos Transputer family
- Linux for Intel x86 computers
- OS/2 version 2.0 and onward
- SunOS-4.1.3 for SPARC-based computers
- Windows 95 and Windows NT for Intel
Extensions to standard ALGOL 68
- Ability to include source code, and versions of source code.
- Nestable comments
- FORALL syntactic element for looping over arrays.
- ANYMODE a union of all MODEs known to the compiler, and hence dynamic typing.
- Enhanced coercions allowing stringer then "strong" coercions.
- Enstructuring automatically coerces a variable from type to struct
- Conforming coerces UNION to THING, but if that is not the current mood of the union, then a run-time error will be generated.
- Library interface to the native operating system and other libraries.
- The operator SIZE
- Pseudo-operators ANDTH and OREL, and ANF and ORF for Short-circuit evaluation of Boolean expressions.
- Arrays can be slices with stride to select a subset of elements.
- MOID is treated differently.
Example of code
MODULE vectors
BEGIN
INT dim=3;
MODE VECTOR = REAL;
OP + = VECTOR:,
- = VECTOR:,
DOT = REAL: ;
END
KEEP VECTOR, +, -, DOT
Restrictions to the language from the standard ALGOL 68
- Variable, Modes and Operators must be declared before use.
- Anonymous procedure may use rows-declarer as a parameter.
- No transient subnames of flexible arrays.
- No formatted Transput.
- Restricted use of straightening of multiple values during Transput.
- Limited use of BYTES, BITS and BOOL.
- restricted use of labels to follow EXIT statements.