This document is the DECsystem-10 ALGOL Programmer's Reference Manual, Version 3B, published by Digital Equipment Corporation, with updates through July 1974.
The manual aims to teach the use of DECsystem-10 ALGOL, an implementation of ALGOL-60, to programmers already familiar with ALGOL or other high-level scientific programming languages (like FORTRAN IV); it is not a beginner's guide. It details the language's features, the compiler's behavior, and the operating environment.
Key areas covered include:
- Introduction to DECsystem-10 ALGOL: Overview of the language, compiler extensions (e.g.,
LONG REAL type, EXTERNAL procedures, WHILE statements, STRING type with byte manipulation, embedded assignments), compiler restrictions, and the ALGOL operating environment (ALGLIB and ALGOTS).
- Program Structure and Fundamentals: Basic and compound symbols, delimiter words, spacing, and commentary.
- Data and Declarations: Identifiers, scalar declarations (Integer, Real, Long Real, Boolean, String), and various types of constants (numeric, octal, Boolean, ASCII, string).
- Expressions and Statements: Arithmetic expressions (including
DIV, REM, ENTIER, ABS, SIGN), Boolean expressions and operators, assignment statements (including multiple and embedded assignments), compound statements, control transfers (GOTO, labels), conditional statements (IF THEN ELSE), and looping constructs (FOR and WHILE statements).
- Complex Data Structures and Organization: Arrays (including dynamic bounds) and the hierarchical block structure of ALGOL programs with its implications for variable scope.
- Procedures: Detailed explanation of procedures, parameter passing (call by value and call by name), procedure headings, bodies, calls, and advanced concepts like Jensen's Device and recursion. It also covers forward references and external procedures.
- Strings: Extensive coverage of the
STRING type, string expressions and assignments, byte strings (flexible storage for bytes of various sizes), byte subscripting, string comparisons, and library procedures for string manipulation (e.g., concatenation, copying, creating new strings, deletion).
- Data Transmission (I/O): A comprehensive section on managing peripheral devices (disk, DECtape, terminal) through allocation, selection of I/O channels, file operations (opening, closing, renaming, deleting), and a suite of basic and specialized I/O procedures for processing bytes, strings, and numeric data (READ, PRINT, READOCTAL, PRINTOCTAL). It also covers logical I/O using byte strings as channels.
- Operating Environment and Libraries: Describes the mathematical procedures (e.g.,
SIN, COS, SQRT), string procedures, utility procedures (array dimension, min/max, field manipulation), and how to interface with FORTRAN subroutines.
- Running and Debugging: Instructions for compiling, loading, and executing ALGOL programs, using the monitor's command language, and available run-time diagnostics and debugging facilities (e.g., error trapping with
TRAP, array bound checking with CHECKON/CHECKOFF, source listing control).
- Technical Notes: Clarifications on the authors' interpretations of the ALGOL-60 Revised Report regarding specific language behaviors.