## Index

`(`
  Order of elaboration | Conditional clauses
`)`
  Order of elaboration | Conditional clauses
`*`
  Multiplication | Operators using `CHAR` | Operators with multiples | Standard priorities | Dyadic operators
  `STRING`
    Operators with `STRING` operands
`**`
  Exponentiation | Complex numbers | Standard priorities | Dyadic operators | Operators with mixed operands
`+`
  Operators using `CHAR` | Operators with multiples | The mode `STRING` | Complex numbers | Standard priorities
  dyadic
    Dyadic operators | Dyadic operators | Operators with mixed operands
    `CHAR`
      Operators with `CHAR` operands
  monadic
    Monadic operators | Monadic operators
  `STRING`
    Operators with `STRING` operands
`+*`
  Dyadic operators | Operators with mixed operands
`-`
  Complex numbers | Standard priorities
  dyadic
    Dyadic operators | Dyadic operators
  monadic
    Monadic operators | Monadic operators
`/`
  Division | Standard priorities | Dyadic operators
`/=`
  Relational operators | Complex numbers | Standard priorities | Operators with `BOOL` operands | Dyadic operators
  CHAR``
    Operators with `CHAR` operands
  `STRING`
    Operators with `STRING` operands
2's-complement binary
  Names
`:`
  Trimming | Environment strings
`:/=:`
  Quaternaries | Identity relations
`:=:`
  Quaternaries | Identity relations
`;`
  Identity declarations | Characters | Program structure| Ranges | Field selection | Voiding | Completers
`&*`
  Other operators
`>`
  Relational operators | Standard priorities | Dyadic operators | Operators with mixed operands
  CHAR
    Operators with `CHAR` operands
  `STRING`
    Operators with `STRING` operands
`>=`
  Relational operators | Standard priorities | Dyadic operators | Operators with mixed operands
  CHAR``
    Operators with `CHAR` operands
  `STRING`
    Operators with `STRING` operands
`<`
  Relational operators | Standard priorities | Dyadic operators | Dyadic operators | Operators with mixed operands
  CHAR`CHAR`
    Operators with `CHAR` operands
  `STRING`
    Operators with `STRING` operands
  STRING`STRING`
    Operators with `STRING` operands
`<=`
  Relational operators | Standard priorities | Operators with mixed operands | Dyadic operators
  CHAR`CHAR`
    Operators with `CHAR` operands
  `STRING`
    Operators with `STRING` operands
`BUFFER`
  Interrogating files
`RVC`
  Interrogating files
`=`
  Identity declarations | Relational operators | Complex numbers | Standard priorities | Operators with `BOOL` operands | Dyadic operators
  CHAR``
    Operators with `CHAR` operands
  `STRING`
    Operators with `STRING` operands
@`"`
  Multiples
`|:`
  Conditional clauses
`A68_GC_POLICY`
  Garbage-collector control
a68toc
  Exercises | Internal books | Dyadic operators for `BITS` | Transput routines | Chapter 3
  `ALIEN`
    `ALIEN` procedures
  balancing
    Balancing
  `bits width`
    The mode `BITS`
  `BY`
    Program repetition | Operators | Chapter 9
  `BYTES`
    Enquiries about precisions
  charset
    Character set enquiries
  collateral clauses
    Enclosed clauses
  comments
    Comments
  debugger
    Testing and debugging
  declarations
    Characters | Real numbers | The source code
  dimensions
    Dimensions | Printing multiples
  directives
    Program structure
  division by zero
    Dyadic operators
  `ELSE SKIP`
    Conditional clauses
  `establish`
    Writing to books
  events
    Events
  `FORALL`
    The `FORALL` loop
  `FSTAT`
    The procedure `fstat`
  identifier range
    Enclosed clauses
  ignoring bounds
    Multiples in structures
  `int lengths`
    Monetary values
  `int shorths`
    Monetary values
  `LENG`
    Monadic operators
  `lock`
    Other transput procedures
  `mm`
    Compilation errors
  mode declaration
    Determination of well-formedness
  `NIL`
    The value `NIL`
  `OP` error
    Deproceduring
  parallel clauses
    Enclosed clauses
  precisions
    Enquiries about precisions
  recursive modes
    Mode declarations
  requirements
    What you will need
  scope checking
    Routines yielding names | Other features of procedures
  selections
    Rows of structures | Secondaries
  `set`
    Binary books
  `SHORTEN`
    Monadic operators
  standard prelude
    Standard Prelude
  test program
    Arithmetic overflow
  unassigned names
    Quaternaries
  `UNION`
    United mode declarations
  `VECTOR`
    The procedure `get cwd`
  voiding error
    Deproceduring
`ABS`
  Monadic operators | Operators using `CHAR` | Boolean operators | Complex numbers | Monadic operators for `BITS` | Dyadic operators for `BITS` | Operators with `BOOL` operands | Monadic operators
  `CHAR`
    Operators with `CHAR` operands
`accept`
  Standard channels
actual-declarer
  Multiple names | The mode `STRING` | Abbreviated declarations | Multiples in structures
`af inet`
  Standard channels
`af unix`
  Standard channels
Algol68toC
  Program development
`ALIEN`
  Standard Prelude | a68toc constructs
alternative representation
  Division
`always collect`
  Garbage-collector control
`always grow heap`
  Garbage-collector control
`AND`
  Boolean operators | Pseudo-operators | Dyadic operators for `BITS` | Standard priorities | Operators with `BOOL` operands | Dyadic operators
anonymous
  Procedures as parameters
anonymous name
  Secondaries | Exercises
`ansi raise`
  Routines conforming to Ansi | Floating-point unit control
`ansi signal`
  Routines conforming to Ansi
`ansi strtod`
  Routines conforming to Ansi
applied identifier
  Quaternaries
`arccos`
  Standard procedures | Mathematical procedures
`arcsin`
  Standard procedures | Mathematical procedures
`arctan`
  Standard procedures | Mathematical procedures
`ARG`
  Complex numbers | Monadic operators
`arg channel`
  The command line | The command line | Standard channels
argument
  The command line | A simple utility
arithmetic
  mixed
    Mixed arithmetic
ASCII
  Characters | Operators using `CHAR`
assigning operators
  Quaternaries
assignment
  Assignment | Collective assignment | Voiding | Quaternaries | Balancing | References to names
  initial
    Phrases
assignment operators
  Assigning operators
assignment token
  Assignment | Quaternaries
`AT`
  Trimming | Collective assignment
`at exit`
  Terminating a process
B-trees
  Trees
`backspace`
  Layout routines
balanced trees
  Trees
balancing
  Conditional clauses | Primaries | Quaternaries | Balancing | Identity relations | The value `NIL`
`BEGIN`
  Order of elaboration | Row-displays | Conditional clauses | Multiple choice | Routines | Enclosed clauses | Quaternaries
`BIN`
  Monadic operators for `BITS` | Monadic operators
`bin possible`
  Interrogating files
binary
  Books, channels and files | Radix arithmetic | Dyadic operators for `BITS` | Monetary values
binary transput
  Binary books
`BIOP 99`
  a68toc constructs
bit-wise operator
  Monadic operators for `BITS`
`BITS`
  The mode `BITS` | Dyadic operators for `BITS` | Monetary values | Standard modes
`bits bin bytes`
  Sizes used in binary
`bits lengths`
  Monetary values | Enquiries about precisions
`bits pack`
  Other procedures
`bits shorths`
  Monetary values | Enquiries about precisions
`bits width`
  The mode `BITS` | Internal sizes of modes
`blank`
  Characters | The command line | Character set enquiries | Standard channels
blank lines
  Program layout
BODMAS
  Multiplication
book
  Books, channels and files
  binary
    Binary books
  internal
    Internal books
  read-only
    Books, channels and files
  write-only
    Books, channels and files
`BOOL`
  Boolean values | Standard modes
`bool bin bytes`
  Sizes used in binary
Boole, George
  Boolean values
Boolean
  Boolean values
bound
  lower
    Subscripts and bounds
  upper
    Subscripts and bounds
boundary conditions
  Testing and debugging
bounds
  The `FORALL` loop | Multiple names | Collective assignment | Flexible names | Exercises | Names as parameters
  interrogation
    Subscripts and bounds
bounds interrogation
  Multiples as parameters
browsing
  Books, channels and files | Binary books
`bsd accept`
  Routines conforming to BSD4.4
`bsd bind`
  Routines conforming to BSD4.4
`bsd chmod`
  Routines conforming to BSD4.4
`bsd gethostbyname`
  Routines conforming to BSD4.4
`bsd inet aton`
  Routines conforming to BSD4.4
`bsd is a tty`
  Routines conforming to BSD4.4
`bsd listen`
  Routines conforming to BSD4.4
`bsd mkstemp`
  `ALIEN` routines
`bsd real snprintf`
  Routines conforming to BSD4.4
`bsd shutdown`
  Routines conforming to BSD4.4
`bsd socket`
  Routines conforming to BSD4.4
`BUFFER`
  Transput modes
bugs
  Program development
bus
  Slicing
`BY`
  Program repetition | a68toc constructs
`BYTES`
  Bits, bytes and words | Standard modes
`bytes lengths`
  Enquiries about precisions
`bytes per bits`
  Enquiries about ranges
`bytes shorths`
  Enquiries about precisions
`bytes width`
  Internal sizes of modes
C macro
  The procedure `get cwd`
canonical input mode
  Non-canonical input
`CASE`
  Multiple choice
`CASE` default
  a68toc constructs
cast
  Coercions | Primaries | Quaternaries | Identity relations
`CCHARPTR`
  Modes peculiar to a68toc
`CCHARPTRPTR`
  Modes peculiar to a68toc
`CCHARPTRTOCSTR`
  Operators using `BIOP 99`
`CHANNEL`
  Books, channels and files | Transput modes
`CHAR`
  Characters | Standard modes
`char bin bytes`
  Sizes used in binary
`char in string`
  Other procedures | Conversion routines
character set
  Characters
characters
  Characters
`CINTPTR`
  Modes peculiar to a68toc
clause
  boolean
    Conditional clauses
  case
    Multiple choice | Enclosed clauses | Balancing | The value `NIL`
  closed
    Ranges | Enclosed clauses | Quaternaries | Balancing
  collateral
    Enclosed clauses
  conditional
    Conditional clauses | Assignments in formulę | Collective assignment | Names as parameters | Identification of operators | Other features of procedures | Enclosed clauses | Balancing
    nested
      Conditional clauses
    short form
      Conditional clauses
  conformity
    United modes in procedures | Conformity clauses | Enclosed clauses
  enclosed
    Row-displays | Nested loops | Conditional clauses | Multiple choice | Assignments in formulę | Routines | Names as parameters | Conformity clauses | Enclosed clauses
  enquiry
    Conditional clauses | Multiple choice | Loops revisited
  `GOTO`
    Completers
  loop
    Program repetition | Nested loops | Individual assignment | Loops revisited | Routines | Enclosed clauses | Secondaries
  parallel
    Enclosed clauses
  serial
    Conditional clauses | Multiple choice | Routines | Completers
`client socket`
  Standard channels
`client socket channel`
  Standard channels
`close`
  Reading books | Writing to books | Standard channels
`CODE`
  a68toc constructs
  indentation
    Program layout
  machine
    Comments
  object
    Comments
  source
    Program structure | Comments
coercion
  Real numbers | Multiplication | Assignment | Orthogonality
  deproceduring
    Parameterless procedures | United modes in procedures | Coercions | Deproceduring | Voiding | Quaternaries
  dereferencing
    Copying values | Assigning operators | Individual assignment | Reference modes in transput | Dynamic names | Routines | Identification of operators | Other features of procedures | United modes in procedures | Coercions | Dereferencing | Voiding | References to names | The procedure `add fan`
  rowing
    Row-displays | Relational operators | Flexible names | Coercions | Rowing
  uniting
    United mode declarations | Conformity clauses | Coercions
  voiding
    The mode `VOID` | Parameterless procedures | Coercions | Voiding
  weakly-dereferencing
    Coercions | Weakly-dereferencing | Primaries | Quaternaries | Queues
  widening
    Real numbers | Multiplication | Division | Changing the mode | Row-displays | Relational operators | Conditional clauses | Assignment | Reference modes in transput | Structure denotations | Field selection | Complex numbers | Coercions
collateral
  elaboration
    Routine modes
`COLLECTION THRESHOLD`
  Garbage-collector control
columns
  Dimensions
comma
  Identity declarations | Real numbers | Slicing | The `FORALL` loop | Multiple choice
  dimensions
    Dimensions
command line
  What you will need
command prompt
  The command line
comment
  Comments
compiler
  Identity declarations
`COMPL`
  Complex numbers | Monetary values | Standard modes
`compl bin bytes`
  Sizes used in binary
completer
  Completers
complex numbers
  Complex numbers
compound expression
  Pseudo-operators
concatenation
  Operators with multiples | The mode `STRING`
conformity case clause
  Conformity clauses
`CONJ`
  Complex numbers | Monadic operators
consecutive operators
  Division
constant
  Assignment
context
  Real numbers | Orthogonality
  firm
    Multiplication | Row-displays | Assigning operators | Reference modes in transput | Identification of operators | Operator usage | United mode declarations | United modes in procedures | Contexts | Uniting
  meek
    Trimming | Program repetition | Dynamic names | Loops revisited | Contexts | Enclosed clauses | Primaries | Balancing
  soft
    Assignments in formulę | Parameterless procedures | Contexts | Quaternaries | Balancing | References to names | Identity relations
  strong
    Real numbers | Multiplication | Row-displays | Conditional clauses | Assignment | Copying values | Routines | Parameterless procedures | Procedures with parameters | Other features of procedures | Structure denotations | Complex numbers | String terminators | Contexts | Uniting | Voiding | Primaries | Quaternaries | Identity relations
    exception
      Operator usage
  weak
    Contexts | Weakly-dereferencing | Primaries | Queues
converse condition
  Compound Boolean formulę
`cos`
  Standard procedures | Mathematical procedures
`CPTR`
  Modes peculiar to a68toc
`CPTRTORVC`
  Other operators
`cr`
  Character set enquiries
`create`
  Standard channels
`CSTR`
  Modes peculiar to a68toc
`CSTRTOCCHARPTR`
  Operators using `BIOP 99`
`CSTRTORVC`
  Other operators
`current pos`
  Binary books | Interrogating files
data
  Books, channels and files
  knowledge
    Writing programs
  structure
    Writing programs
`debug`
  Testing and debugging
debugging
  Testing and debugging
  ploys
    Testing and debugging
decimal
  Radix arithmetic
declaration
  Identity declarations | Phrases
  abbreviated
    Abbreviated declarations | United mode declarations
  grouping
    Declarations
  identity
    Identity declarations | Real numbers | Monadic operators | Multiplication | Row-displays | Dimensions | Multiple names | Rowing
    `[]CHAR`
      Multiples | Row-displays
    `CASE`
      Conformity clauses
    `FLEX`
      Flexible names
    formal definition
      Routines
    `LOC`
      Names
    optimisation
      Program repetition
    `REF`
      The mode `STRING`
    routine
      Operators
    routine call
      Dyadic operators
    `STRUCT`
      Structure denotations
  mode
    Complex numbers | Multiples in structures | United mode declarations | Well-formed modes
  priority
    Dyadic operators
  structure
    Mode declarations | Multiples in structures
  stub
    Mode declarations | Determination of well-formedness
`DECS`
  a68toc constructs
`default io procs`
  Other procedures
`default policy`
  Garbage-collector control
denotation
  Integers | Program structure | External values | Monadic operators | Routines yielding names | Phrases | Primaries
  `[]CHAR`
    Multiples
  `BITS`
    The mode `BITS`
  character
    Characters
  integer
    Integers
  real
    Real numbers
  routine
    Routines | Multiples as parameters | Operators | Procedures as parameters | Phrases | Quaternaries | Balancing
descriptor
  Flexible names
dimensions
  Dimensions
`disable_garbage_collector`
  Garbage-collector control
`DIVAB`
  Assigning operators | Complex numbers | Standard priorities | Assigning operators
division
  real
    Division
documentation
  Documentation
`fe downward`
  Floating-point unit control
dry-running
  Testing and debugging | Dry-running example
`echo`
  `ALIEN` declarations
elaboration
  Voiding | Well-formed modes
  collateral
    Identity declarations | The `FORALL` loop | Assigning operators | Dyadic operators | Field selection
  order of
    Monadic operators | Multiplication | Dyadic operators
  sequence of
    Identity declarations
  sequential
    Identity declarations
`ELEM`
  Dyadic operators for `BITS` | Standard priorities | Dyadic operators
  `BITS`
    Other operators
elements
  Multiples
`ELIF`
  Conditional clauses
`ELSE`
  Conditional clauses
`ELSE IF`
  Conditional clauses
`EMPTY`
  The mode `VOID`
`enable_garbage_collector`
  Garbage-collector control
enclosing range
  Recursion
`END`
  Order of elaboration | Row-displays | Conditional clauses | Multiple choice | Routines | Enclosed clauses | Quaternaries
end-of-line
  String terminators
`ENTIER`
  Changing the mode | Monadic operators
`env channel`
  Environment strings | Standard channels
environment enquiry
  The mode `BITS` | Monetary values
environment string
  Environment strings
`environment string estab err`
  Transput | Standard channels
`environment string unset`
  Transput | Standard channels
`eof char`
  Character set enquiries
`erange err`
  `ALIEN` declarations
Eratosthenes' Sieve
  Individual assignment
`errno`
  `ALIEN` declarations
error
  compilation
    Compilation errors
  run-time
    Individual assignment | Flexible names | Testing and debugging
`error char`
  Writing reports | Character set enquiries
`ESAC`
  Multiple choice
`esc`
  Character set enquiries
`estab invalid parameters`
  Transput | Standard channels
`establish`
  Writing to books | Standard channels | Opening files
event-driven programming
  Transput
`exit`
  Completers | Terminating a process
`exp`
  Standard procedures | Mathematical procedures
`exp width`
  Monetary values | Internal sizes of modes
exponent
  Monetary values
`FALSE`
  Boolean values | Binary books | Standard modes
`FAN`
  Queues
`fchmod`
  Routines conforming to BSD4.4
`fe get round`
  Floating-point unit control
`fe set round`
  Floating-point unit control
`fe to nearest`
  Floating-point unit control
`ff`
  Character set enquiries
`FI`
  Conditional clauses
field
  Writing reports
field selection
  Field selection | Queues
field selector
  Structure denotations | Primaries
fields
  Structure denotations
`FILE`
  Books, channels and files | Transput modes
`file buffer`
  Transput modes | Other procedures | Interrogating files
file redirection
  `print` revisited
files
  Books, channels and files
firmly coercible
  Identification of operators
firmly related
  Identification of operators | Operator usage | Dyadic operators | United mode declarations
`fixed`
  Writing reports | Conversion routines
`FLAT`
  - `(REAL)STRUCT 8 CHAR`
  - `(SHORT REAL)STRUCT 4 CHAR`
  - `(STRUCT 8 CHAR)REAL`
  - `(STRUCT 4 CHAR)SHORT REAL`
`FLATB`
  - `(LONG BITS)STRUCT 8 CHAR`
  - `(BITS)STRUCT 4 CHAR`
  - `(SHORT BITS)STRUCT 2 CHAR`
  - `(SHORT SHORT BITS)STRUCT 1 CHAR`
`FLATRVB`
  Other operators
`FLATRVLB`
  Other operators
`FLATRVR`
  Other operators
`FLATRVSB`
  Other operators
`FLATRVSR`
  Other operators
`FLATRVSSB`
  Other operators
`FLEX`
  Flexible names | The mode `STRING` | Names as parameters
flexibility
  Orthogonality
flexible
  Flexible names
flexible name
  Procedures with parameters | Exercises
`flip`
  Character set enquiries
`float`
  Writing reports | Conversion routines
floating-point standard
  Monetary values
`flop`
  Character set enquiries
`flush buffer`
  Other procedures
`FORALL` loop
  The `FORALL` loop
formal-declarer
  Multiple names | Collective assignment | The mode `STRING` | Routines | Procedures | Multiples in structures
formal-mode-declarer
  Routines
formula
  Integers | Row-displays | Tertiaries | Quaternaries
fractional part
  Changing the mode
free format
  Program structure
`FROM`
  Program repetition
garbage collector
  Trees
`garbage_collect`
  Garbage-collector control
`gc_param`
  Garbage-collector control
`GCPARAM`
  Modes peculiar to a68toc
generator
  Names | Primaries | Secondaries | Queues
  anonymous
    The procedure `get cwd`
  global
    Names | Routines yielding names
  local
    Names | Routines yielding names | United mode declarations | Rowing
`get`
  Reading books | The command line | Environment strings | Binary books | Formatless transput
`get bin`
  Binary books | Sizes used in binary | Binary transput
`get fpu cw`
  Local routines
`get possible`
  Interrogating files
`get_gc_param`
  Garbage-collector control
global names
  Declarations
go-on
  Assignment
header
  Routines
`HEAP`
  Routines yielding names | Parameterless procedures
`HEAP INCREMENT`
  Garbage-collector control
Heuristics
  Writing programs
`HEX`
  Conversion routines
hexadecimal
  Radix arithmetic
  arithmetic
    Radix arithmetic
  notation
    Radix arithmetic
`I`
  Complex numbers | Standard priorities | Dyadic operators
`icanon`
  `ALIEN` declarations
identification
  Books, channels and files
identifier
  Identity declarations | Ranges | Program repetition | Routines | Dyadic operators | Conformity clauses
  applied
    Primaries | Secondaries
  global
    Parameterless routines
identity
  declaration
    formal-declarer
      Multiples in structures
  relation
    Phrases | Contexts | Contexts | Primaries | Quaternaries || Balancing | Identity relations | The value `NIL` | The procedure `add fan`
  relator
    Quaternaries
`idf`
  Other transput procedures | Interrogating files
`ignore char error`
  Other procedures
`ignore value error`
  Other procedures
`IM`
  Complex numbers | Monadic operators
`IN`
  The `FORALL` loop | Multiple choice
indeterminate result
  Dyadic operators
indexable structure
  Modes peculiar to a68toc
`infinity`
  Particular arithmetic values
initial assignment
  Copying values | Routines
instance
  Assignment | References to names
`INT`
  Values and modes | Integers | Monadic operators | Dyadic operators | Program repetition | Monetary values | Standard modes
`int bin bytes`
  Sizes used in binary
`int lengths`
  Monetary values | Enquiries about precisions
`int shorths`
  Monetary values | Enquiries about precisions
`int width`
  Internal sizes of modes
integer
  Integers
  largest negative
    Integers
  largest positive
    Integers
integer division
  Division
internal representation
  Reference modes in transput
`IS`
  Identity relations
`isig`
  `ALIEN` declarations
`ISNT`
  Identity relations
`iso at exit`
  Routines conforming to an | Terminating a process
`itostr`
  Radix arithmetic
Jackson methodology
  Writing programs
`kbd channel`
  `ALIEN` declarations | Standard channels | Standard files
keyboard
  Books, channels and files
label
  Environment strings | Completers
`last random`
  Mathematical procedures
leading zero
  Integers
learning by doing
  Writing programs
`LENG`
  Monetary values | Monadic operators
`lf`
  Binary books | Character set enquiries | Binary transput
linked-list
  Queues | More queue procedures | Trees
linker
  Comments
`linux on exit`
  Routines peculiar to Linux
`linux tc get attr`
  Routines peculiar to Linux
`linux tc set attr`
  `ALIEN` declarations | Routines peculiar to Linux
`ln`
  Standard procedures | Mathematical procedures
`LOC`
  Names | Routines yielding names
local
  name
    Names
`lock`
  Other transput procedures | Standard channels
`log`
  Mathematical procedures
`log2`
  Particular arithmetic values
logic level
  Procedures
`logical end`
  Binary books | Standard channels | Interrogating files
logical file end
  Events
`logical file end not mended`
  Transput
`LONG`
  Monetary values
`LONG BITS`
  Standard modes
`long bits bin bytes`
  Sizes used in binary
`long bits pack`
  Other procedures
`long bits width`
  Internal sizes of modes
`LONG INT`
  Standard modes
`long int bin bytes`
  Sizes used in binary
`long int width`
  Internal sizes of modes
`long last random`
  Mathematical procedures
`long max int`
  Monetary values | Enquiries about ranges
`long random int`
  Mathematical procedures
lower bound
  Collective assignment
`lrint`
  Floating-point unit control
`LWB`
  Subscripts and bounds | Program repetition | Standard priorities
  dyadic
    Operators with row operands
  monadic
    Operators with row operands
machine code
  Identity declarations
machine word
  The mode `BITS`
main processing logic
  The source code
`make term`
  String terminators | The command line | Environment strings | Binary books | Standard channels | Binary transput | File properties
`MAKERVC`
  Other operators
mantissa
  Monetary values
`MAX`
  Miscellaneous operators | Standard priorities | Other operators
`max abs char`
  Operators using `CHAR` | Character set enquiries
`max exp`
  Internal sizes of modes
`max exp real`
  Monetary values
`MAX HEAP SIZE`
  Garbage-collector control
`max int`
  Identity declarations | External values | Multiples | Enquiries about ranges
`max real`
  Real numbers | External values | Monetary values | Enquiries about ranges
`MAX SEGMENT SIZE`
  Garbage-collector control
`mem channel`
  Standard channels | Opening files
memory
  Bits, bytes and words
memory control
  Trees
`MIN`
  Miscellaneous operators | Standard priorities | Other operators
`min exp`
  Internal sizes of modes
`MIN HEAP SIZE`
  Garbage-collector control
`min real`
  Monetary values | Enquiries about ranges
`MIN SEGMENT SIZE`
  Garbage-collector control
`MINUSAB`
  Assigning operators | Complex numbers | Standard priorities | Assigning operators
mixed modes
  Relational operators
`mkstemp`
  Routines conforming to BSD4.4
`MOD`
  Division | Exercises | Standard priorities | Dyadic operators
`MODAB`
  Assigning operators | Standard priorities | Assigning operators
mode
  Values and modes | Integers | Multiples | Orthogonality
  base
    Multiples | Dimensions | Rowing
  constituent
    Structure denotations | Conformity clauses
  formal
    Procedures as parameters
  indicant
    Identity declarations | Comments | Formulę | Multiples | The mode `STRING` | Operators | Mode declarations | Primaries | Determination of well-formedness
    definition
      Values and modes
  `INT`
    Monadic operators
  recursion
    Well-formed modes
  routine
    Routines
  selector
    Conformity clauses
  shielding
    Well-formed modes
  united
    Unions
  well-formed
    Well-formed modes
mode declaration
  Mode declarations
mode declarations
  Writing programs | The source code
monetary values
  Monetary values
monitors
  Testing and debugging
multiple
  Multiples | Multiple names
  flat
    Row-displays | Flexible names
  rectangular
    Dimensions
  square
    Dimensions
multiplication
  Multiplication
mutual recursion
  Recursion | Mode declarations
name
  Names | Assignment | Routines yielding names | Rowing | Quaternaries | References to names | Queues
  anonymous
    The procedure `add fan`
  dynamic
    Dynamic names
  flexible
    The mode `STRING` | Queues
  global
    Declarations
`NE`
  Relational operators
nested
  The `FORALL` loop
nesting
  Order of elaboration
`newline`
  `print` revisited | Reference modes in transput | Reading books | Writing to books | Layout routines
`newpage`
  `print` revisited | Reference modes in transput | Reading books | Writing to books | Layout routines
`next random`
  Mathematical procedures
nibble
  Dyadic operators for `BITS`
`NIL`
  Phrases | The value `NIL` | Queues
`nil func ptr`
  `ALIEN` declarations
`no file end`
  Other procedures
`no program args`
  Transput
nodes
  Trees
`NOT`
  Boolean operators | Monadic operators for `BITS` | Operators with `BOOL` operands | Monadic operators
`nul ch`
  Environment strings | Character set enquiries | Standard channels
`null c charptr`
  `ALIEN` declarations
`null character`
  Character set enquiries
null string
  The command line
occurrence
  applied
    Identification of operators
  defining
    Identification of operators
`ODD`
  Boolean operators | Monadic operators
`OF`
  Field selection
`on char error`
  Event routines
`on exit`
  Terminating a process
`on logical file end`
  Logical file end Event routines
`on physical file end`
  Event routines
`on signal`
  Floating-point unit control
`on value error`
  Event routines
`OP`
  Operators
`open`
  Reading books | Environment strings | Standard channels | Opening files
`open invalid parameters`
  Transput
operand
  Formulę | Dyadic operators | Conditional clauses | Operators
operating-system
  Books, channels and files
operator
  Formulę
  combining
    Monadic operators
  dyadic
    Monadic operators | Exponentiation | Subscripts and bounds | Boolean operators | Operators | Dyadic operators
    identification
      Dyadic operators
  mixed modes
    Mixed arithmetic
  mode
    Operators
  modulo
    Division
  monadic
    Monadic operators | Exponentiation | Subscripts and bounds | Operators
  priority
    Operators | Dyadic operators
  symbol
    Operators | Dyadic operators | Operator symbols
  value
    Operators
  yield
    Operators
optimisation
  Program repetition | Collective assignment | Exercises
  code
    Optimisation
`OR`
  Boolean operators | Compound Boolean formulę | Pseudo-operators | Dyadic operators for `BITS` | Standard priorities | Operators with `BOOL` operands | Dyadic operators
order of elaboration
  Order of elaboration
order of modes
  United mode declarations
ordering operators
  Relational operators
`OREL`
  Pseudo-operators
orthogonality
  Introduction | Orthogonality
`OUSE`
  Multiple choice
`OUT`
  Multiple choice
`OUT CASE`
  Multiple choice
`OUT` clause
  Multiple choice
`OVER`
  Division | Standard priorities | Dyadic operators
`OVERAB`
  Assigning operators | Standard priorities | Assigning operators
overflow
  arithmetic
    Arithmetic overflow
  integer
    Dyadic operators
overloading
  Identification of operators | Procedures
parallel
  processing
    Identity declarations
parameter
  `print` revisited | Reference modes in transput | Routines
  actual
    Routines | Multiples as parameters | Dyadic operators | Procedures with parameters
  formal
    Routines | Multiples as parameters | Parameterless routines | Operator usage | Dyadic operators | Procedures with parameters
  list
    Procedures with parameters
  procedure
    Procedures as parameters
parentheses
  Order of elaboration | Row-displays | Conditional clauses | Multiple choice | Procedures with parameters | Field selection | Secondaries | Quaternaries | Identity relations
  nesting of
    Order of elaboration
`PDESC`
  Modes peculiar to a68toc
`ph round`
  Local routines
phrase
  Identity declarations | Characters | Program structure | Ranges | Nested loops | Conditional clauses | Names as parameters | Phrases | Orthogonality
physical file end
  Events
`physical file end not mended`
  Transput
`pi`
  Real numbers | Particular arithmetic values
`PLUSAB`
  Assigning operators | The mode `STRING` | Complex numbers | Standard priorities | Assigning operators
`PLUSTO`
  The mode `STRING` | Standard priorities | Assigning operators
`POLICY`
  Garbage-collector control
Pólya, George
  Writing programs
`posix close`
  Routines conforming to POSIX
`posix creat`
  Routines conforming to POSIX
`posix exit`
  Routines conforming to POSIX
`posix getenv`
  Routines conforming to POSIX
`posix getpid`
  Routines conforming to POSIX
`posix lseek`
  Routines conforming to POSIX
`posix open`
  Routines conforming to POSIX
`posix read`
  Routines conforming to POSIX
`posix rename`
  Routines conforming to POSIX
`posix seek cur`
  `ALIEN` declarations
`posix seek end`
  `ALIEN` declarations
`posix seek set`
  `ALIEN` declarations
`posix strlen`
  Routines conforming to POSIX
`posix time`
  Routines conforming to POSIX
`posix unlink`
  Routines conforming to POSIX
`posix write`
  Routines conforming to POSIX
`posx strerror`
  Routines conforming to POSIX
`prelude`
  `ALIEN` declarations
primary
  Secondaries | Tertiaries
primitive concepts
  Orthogonality
principle of value integrity
  Assigning operators
`print`
  Program structure | `print` revisited | Printing multiples | Boolean values | Collective assignment | Reference modes in transput | Unions | United modes in procedures | Conformity clauses | Writing to books | Formatless transput
`PRIO`
  Dyadic operators | Standard priorities
priority
  Multiplication | Division | Mixed arithmetic | Trimming | Operators with multiples | Boolean operators | Relational operators | Compound Boolean formulę | Assigning operators
problem analysis
  Writing programs
problem solving
  Writing programs
`PROC`
  Procedures
procedure
  Procedures | Writing programs | Procedures
  call
    Parameterless procedures | Procedures with parameters | Primaries
  identifier
    Procedures as parameters
  interface
    Procedures
  mode
    Procedures
  multiple
    Other features of procedures
  name
    Other features of procedures
  nesting
    Standard procedures | Other features of procedures
  parameterless
    Parameterless procedures
  parameters
    Procedures with parameters
  recursive
    Trees
  yield
    Parameterless procedures
`PROGRAM`
  Program structure | Ranges | a68toc constructs
  design
    Writing programs
  documentation
    Documentation
  layout
    Program layout
  maintenance
    Program development
  running
    Comments
  structure
    Identity declarations | Program structure
programming
  Program development
pseudo-operator
  Pseudo-operators
`put`
  Writing to books | Binary books | Formatless transput
`put bin`
  Binary books | Sizes used in binary | Binary transput
`put possible`
  Interrogating files
quaternary
  Identity relations
`QUEUE`
  Queues
queue procedures
  More queue procedures
queues
  Queues | More queue procedures
radix
  Radix arithmetic | The mode `BITS`
  arithmetic
    Bits, bytes and words
  conversion
    Radix arithmetic
`random`
  Parameterless procedures | United mode declarations | Deproceduring | Mathematical procedures
`random int`
  Standard procedures | Mathematical procedures
range
  Ranges | Program repetition | Conditional clauses| Names | Routines yielding names | Identification of operators | Enclosed clauses | Completers
`RE`
  Complex numbers | Monadic operators
`read`
  Names | Collective assignment | Reference modes in transput | Procedures with parameters | United modes in procedures | Conformity clauses | Reading books | Formatless transput
`read bin`
  Binary transput
read-only
  Books, channels and files
reading
  Books, channels and files
  books
    Reading books
`REAL`
  Real numbers | Monadic operators | Dyadic operators | Monetary values | Standard modes
`real bin bytes`
  Sizes used in binary
`real lengths`
  Monetary values | Enquiries about precisions
`real precision`
  Monetary values | Internal sizes of modes
`real shorths`
  Monetary values | Enquiries about precisions
`real width`
  Monetary values | Internal sizes of modes
record
  Binary books | Top-down analysis
recursion
  Recursion | More queue procedures | Trees
  mutual
    Well-formed modes
recursive call
  Recursion
`REF`
  Names | Assignment | Multiple names | Collective assignment | Flexible names | Field selection | References to names
`REF FILE`
  Binary books
`REF REF`
  References to names
`reidf`
  Standard channels | File properties
`reidf possible`
  Interrogating files
remainder
  Division
repetition
  Program repetition
`REPR`
  Operators using `CHAR` | Dyadic operators for `BITS` | Operators with `CHAR` operands
`reset`
  Binary books
restart
  Books, channels and files
Revised Report
  Standard Prelude
root
  Trees
`ROUND`
  Changing the mode | Monadic operators
rounding
  Changing the mode
routine
  Routines
  body
    Routines
  context
    Routines
  header
    Routines | Routine modes
  yield
    Routines
row
  Dimensions
  display
    Row-displays | Dimensions | Printing multiples | Collective assignment | Reference modes in transput | Routines | Procedures with parameters | Enclosed clauses | Quaternaries | Compilation errors
    empty
      Row-displays
`RPDESC`
  Operators using `BIOP 99`
`RVC`
  Modes peculiar to a68toc | Transput modes | Opening files
scientific format
  Writing reports
scope
  Names | Routines yielding names | Dyadic operators | Secondaries
scope checking
  Routines yielding names
`scratch`
  Other transput procedures | Standard channels
secondary
  Weakly-dereferencing | Secondaries | Secondaries | Tertiaries
selection
  Field selection | Secondaries | Queues
`server socket channel`
  Standard channels
`set`
  Binary books | Standard channels
`set flush after put`
  File properties
`set fpu cw`
  Local routines
`set possible`
  Binary books | Standard files | Binary transput | Interrogating files
`set_gc_params`
  Garbage-collector control
shift operators
  Dyadic operators for `BITS`
`SHL`
  Dyadic operators for `BITS` | Standard priorities | Dyadic operators
`SHORT`
  Monetary values
`short arccos`
  Mathematical procedures
`short arcsin`
  Mathematical procedures
`short arctan`
  Mathematical procedures
`SHORT BITS`
  Standard modes
`short bits bin bytes`
  Sizes used in binary
`short bits pack`
  Other procedures
`short bits width`
  Internal sizes of modes
`SHORT COMPL`
  Standard modes
`short compl bin bytes`
  Sizes used in binary
`short cos`
  Mathematical procedures
`short exp`
  Mathematical procedures
`short exp width`
  Internal sizes of modes
`SHORT INT`
  Standard modes
`short int bin bytes`
  Sizes used in binary
`short int width`
  Internal sizes of modes
`short ln`
  Mathematical procedures
`short log`
  Mathematical procedures
`short max exp`
  Internal sizes of modes
`short max int`
  Monetary values | Enquiries about ranges
`short max real`
  Enquiries about ranges
`short min exp`
  Internal sizes of modes
`short min real`
  Enquiries about ranges
`short pi`
  Particular arithmetic values
`short random`
  Mathematical procedures
`short random int`
  Mathematical procedures
`SHORT REAL`
  Standard modes
`short real precision`
  Internal sizes of modes
`short real width`
  Internal sizes of modes
`SHORT SHORT BITS`
  Standard modes
`short short bits bin bytes`
  Sizes used in binary
`short short bits pack`
  Other procedures
`short short bits width`
  Internal sizes of modes
`SHORT SHORT INT`
  Standard modes
`short short int bin bytes`
  Sizes used in binary
`short short int width`
  Internal sizes of modes
`short short max int`
  Enquiries about ranges
`short short random int`
  Mathematical procedures
`short sin`
  Mathematical procedures
`short small real`
  Enquiries about ranges
`short sqrt`
  Mathematical procedures
`short tan`
  Mathematical procedures
`SHORTEN`
  Monetary values | Monadic operators
`SHR`
  Dyadic operators for `BITS` | Standard priorities | Dyadic operators
side-effect
  Routine modes | Parameterless routines | Dyadic operators | Parameterless procedures
`sigint`
  Floating-point unit control
`SIGN`
  Monadic operators | Changing the mode | Reference modes in transput | Monadic operators
`SIMPLIN`
  United modes in procedures | Reading books | Transput modes
`SIMPLOUT`
  United modes in procedures | Transput modes
`sin`
  Standard procedures | Mathematical procedures
`SKIP`
  Conditional clauses | Multiple choice | Loops revisited | Other features of procedures | Phrases | Quaternaries | The source code
`skip terminators`
  The command line | Layout routines
slice
  Slicing | Trimming | Collective assignment | The mode `STRING` | Parameterless procedures | Multiples in structures | Primaries | Secondaries
  overlapping
    Overlapping slices
`small real`
  Enquiries about ranges
source-level debugger
  Testing and debugging
`space`
  Layout routines
`sqrt`
  Standard procedures | Mathematical procedures
SSADM
  Writing programs
`stand back`
  Standard files
`stand back book`
  Standard channels
`stand back channel`
  Books, channels and files | Standard channels
`stand error`
  Standard channels | Standard files
`stand in`
  Reading books | Standard channels | Standard files | Binary transput
`stand in book`
  Standard channels
`stand in channel`
  Books, channels and files | Standard channels | Standard files
`stand in redirected`
  Transput | Standard channels
`stand out`
  Writing to books | Standard files | Binary transput
`stand out book`
  Standard channels
`stand out channel`
  Books, channels and files | Standard channels | Standard files
standard prelude
  Identity declarations | Characters | Real numbers | Formulę | Operators using `CHAR` | Boolean operators | Relational operators | Assignment | The mode `STRING` | Parameterless procedures | Standard procedures | Complex numbers | Transput | Books, channels and files | Deproceduring | Monetary values
step-wise testing
  Testing and debugging
`stop`
  The mode `VOID` | The command line | The source code | Terminating a process
`STR`
  Modes peculiar to a68toc
`STRAIGHT`
  Reading books
straightening
  Transput of structures | Straightening
`STRING`
  The mode `STRING` | Procedures with parameters | Mode declarations | Multiples in structures | Standard modes
string terminator
  String terminators
`STRTOCSTR`
  Other operators
`STRUCT`
  Structure denotations
structure
  Structure denotations
  display
    Structure denotations | Field selection | Enclosed clauses | Quaternaries | Compilation errors
  mode
    Field selection
  multiple
    Rows of structures
  nested
    Structure denotations
  procedure field
    Structure denotations
  recursive
    Queues | Trees
sub
  Slicing
subscript
  Subscripts and bounds | Individual assignment | Parameterless procedures
symbols
  Characters
`tab ch`
  Operators using `CHAR` | Dry-running example | Character set enquiries
`tan`
  Standard procedures | Mathematical procedures
`tcsanow`
  `ALIEN` declarations
terminators
  The command line
`termios vmin`
  `ALIEN` declarations
`termios vtime`
  `ALIEN` declarations
tertiary
  Quaternaries | Quaternaries
testing
  Testing and debugging
  data
    Testing and debugging
`THEN`
  Conditional clauses
`TIMESAB`
  Assigning operators | Complex numbers | Standard priorities | Assigning operators
`TO`
  Program repetition
`TOCPTR`
  Operators using `BIOP 99`
`TOCSTR`
  Operators using `BIOP 99`
top-down analysis
  Top-down analysis
`TOPDESC`
  Operators using `BIOP 99`
`TOVBDESC`
  Operators using `BIOP 99`
`TOVDESC`
  Operators using `BIOP 99`
`TOVIDESC`
  Operators using `BIOP 99`
transient name
  Flexible names
tree
  Trees
  balanced
    Trees
trimmer
  Trimming | Multiple names
trimming
  Collective assignment | Overlapping slices
`TRUE`
  Boolean values | Binary books | Standard modes
`UNION`
  United mode declarations | Well-formed modes | Determination of well-formedness | Compilation errors
unit
  Characters | Program structure | Row-displays | Ranges | Program repetition | Nested loops | Assigning operators | Routines | Names as parameters | Procedures as parameters | Conformity clauses | Phrases
  constituent
    Row-displays
uniting
  Uniting
`UPB`
  Subscripts and bounds | Program repetition | Standard priorities
  dyadic
    Operators with row operands
  monadic
    Operators with row operands
`USE`
  Program structure | Ranges | a68toc constructs
utility
  A simple utility
`VALID`
  Other operators
value
  Values and modes | Identity declarations | Assignment | Orthogonality
  displaying
    External values
  external
    External values
  instance
    Integers
  internal
    External values
  of a closed clause
    Ranges
  plain
    Repetition | Bits, bytes and words
  yield
    Multiplication
`value error not mended`
  Transput
value integrity
  principle of
    Assignment
values
  plain
    Primaries
`VBTOCPTR`
  Other operators
`VCTOCHARPTR`
  Other operators
`VDESC`
  Modes peculiar to a68toc
`VECTOR`
  Modes peculiar to a68toc
vertical slicing
  Slicing
`VITOINTPTR`
  Other operators
`VOID`
  The mode `VOID` | Parameterless routines | Parameterless procedures | United modes in procedures | Voiding | Standard modes
`WHILE`
  Loops revisited
`whole`
  Writing reports | Writing reports | Writing reports | Conversion routines
words
  Bits, bytes and words
work file
  Binary books
`write`
  Formatless transput
`write bin`
  Binary transput
write-only
  Books, channels and files
writing
  Books, channels and files
yang
  Determination of well-formedness
yield
  Characters | Monadic operators | Routines yielding names | Balancing
yin
  Determination of well-formedness
`Z`
  Other operators