# Standard Prelude

The function of this chapter is to describe all the facilities in the standard prelude supplied with the Linux port of the a68toc compiler. The standard prelude contains both implicit declarations (facilities provided by the compiler) and explicit declarations (those defined in, and made available by, the QAD standard prelude14.1). They are classified and dealt with as follows:-

1. Standard modes
   These are the modes defined by the Algol 68 Revised Report, which defines the language, plus modes required by the transput.
2. Environment enquiries
   Some of these are defined in the Revised Report.
3. Standard operators
   There are a large number of these, all defined in the Revised Report and classified by the modes of their operands. They are preceded by a subsection giving their priorities.
4. Other operators
   Some operators are provided which are not in the Revised Report. They are described in this section. However, operators peculiar to the a68toc implementation are described in the section on a68toc extensions.
5. Standard procedures
   Only those procedures not used in transput and process control are defined here. They all appear in the Revised Report.
6. Other procedures
   Procedures which appear neither in the Revised Report nor in any other section appear here.
7. `ALIEN` declarations This section includes all the `ALIEN` declarations made available by the standard prelude.
8. a68toc extensions
   All the extensions to the language are described in this section including modes, constructs, operators and procedures.
9. Process control
   These declarations provide control over the working of the floating-point unit, integer overflow and signal handling. They include declarations for controlling the Algol 68 garbage collector.
10. Transput
    This very large section provides specifications for all the transput declarations available in the Standard Prelude, but omits those operators and procedures which are intended for internal use only.

See the bibliography for details of the Revised Report.

Subsections

- Standard modes
- Environment enquiries
  - Arithmetic enquiries
    - Enquiries about precisions
    - Enquiries about ranges
    - Internal sizes of modes
    - Sizes used in binary transput
    - Particular arithmetic values
  - Character set enquiries
- Standard operators
  - Method of description
  - Standard priorities
  - Operators with row operands
  - Operators with `BOOL` operands
  - Operators with `INT` operands
    - Monadic operators
    - Dyadic operators
  - Operators with `REAL` operands
    - Monadic operators
    - Dyadic operators
  - Operators with `COMPL` operands
    - Monadic operators
    - Dyadic operators
  - Operators with mixed operands
  - Operators with `BITS` operands
    - Monadic operators
    - Dyadic operators
  - Operators with `CHAR` operands
  - Operators with `STRING` operands
  - Assigning operators
  - Other operators
- Standard procedures
  - Mathematical procedures
  - Other procedures
  - `ALIEN` declarations
  - `ALIEN` routines
    - Routines conforming to Ansi C
    - Routines conforming to BSD4.4
    - Routines conforming to an ISO standard
    - Routines peculiar to Linux
    - Routines conforming to POSIX
    - Local routines
- a68toc extensions
  - Modes peculiar to a68toc
  - a68toc constructs
  - Operators
    - Operators using `BIOP 99`
    - Other operators
- Control routines
  - Floating-point unit control
  - Terminating a process
  - Garbage-collector control
- Transput
  - Transput modes
  - Standard channels
  - Standard files
  - Opening files
  - Closing files
  - Transput routines
    - Straightening
    - Formatless transput
    - Binary transput
    - Other procedures
  - Interrogating files
  - File properties
  - Event routines
  - Conversion routines
  - Layout routines
- Summary