1 Introduction
1.1 General
1.2 Language survey
1.3 Modes and classes
1.4 Locations and their accesses
1.5 Values and their operations
1.6 Actions
1.7 Input and output
1.8 Exception handling
1.9 Time supervision
1.10 Program structure
1.11 Concurrent execution
1.12 General semantic properties
1.13 Implementation options
2 Preliminaries
2.1 The metalanguage
2.2 Vocabulary
2.3 The use of spaces
2.4 Comments
2.5 Format effectors
2.6 Compiler directives
2.7 Names and their defining
occurrences
3 Modes and classes
3.1 General
3.2 Mode definitions
3.3 Mode classification
3.4 Discrete modes
3.5 Real modes
3.6 Powerset modes
3.7 Reference modes
3.8 Procedure modes
3.9 Instance modes
3.10 Synchronization modes
3.11 Input-Output Modes
3.12 Timing modes
3.13 Composite modes
3.14 Dynamic modes
3.15 Moreta Modes
4 Locations and their accesses
4.1 Declarations
4.2 Locations
5 Values and their operations
5.1 Synonym definitions
5.2 Primitive value
5.3 Values
and expressions
6 Actions
6.1 General
6.2 Assignment action
6.3 If action
6.4 Case action
6.5 Do action
6.6 Exit action
6.7 Call action
6.8 Result and return action
6.9 Goto action
6.10 Assert action
6.11 Empty action
6.12 Cause action
6.13 Start action
6.14 Stop action
6.15 Continue action
6.16 Delay action
6.17 Delay case action
6.18 Send action
6.19 Receive case action
6.20 CHILL built-in routine calls
7 Input and Output
7.1 I/O reference model
7.2 Association values
7.3 Access values
7.4 Built-in routines for input output
7.5 Text input output
8 Exception handling
8.1 General
8.2 Handlers
8.3 Handler identification
9 Time supervision
9.1 General
9.2 Timeoutable processes
9.3 Timing actions
9.4 Built-in routines for time
10 Program
Structure
10.1 General
10.2 Reaches and nesting
10.3 Begin-end blocks
10.4 Procedure specifications and
definitions
10.5 Process specifications and
definitions
10.6 Modules
10.7 Regions
10.8 Program
10.9 Storage allocation and lifetime
10.10 Constructs for piecewise programming
10.11 Genericity
11 Concurrent
execution
11.1 Processes, tasks, threads and
their definitions
11.2 Mutual exclusion and regions
11.3 Delaying of a thread
11.4 Re-activation of a thread
11.5 Signal definition statements
11.6 Completion of Region and Task
locations
12 General
semantic properties
12.1 Mode rules
12.2 Visibility and name binding
12.3 Case selection
12.4 Definition and summary of semantic
categories
13 Implementation
options
13.1 Implementation defined built-in
routines
13.2 Implementation defined integer
modes
13.3 Implementation defined floating
point modes
13.4 Implementation defined process names
13.5 Implementation defined handlers
13.6 Implementation defined exception
names
13.7 Other implementation defined
features
Appendix I –
Character set for CHILL
Appendix II – Special symbols
Appendix III – Special simple name strings
III.1 Reserved simple name strings
III.2 Predefined simple name strings
III.3 Exception names Appendix IV – Program examples
IV.1 Operations on integers
IV.2 Same operations on fractions
IV.3 Same operations on complex numbers
IV.4 General order arithmetic
IV.5 Adding bit by bit and checking the
result
IV.6 Playing with dates
IV.7 Roman numerals
IV.8 Counting letters in a character string of arbitrary length
IV.9 Prime numbers
IV.10 Implementing stacks in two
different ways, transparent to the user
IV.11 Fragment for playing chess
IV.12 Building and manipulating a
circularly linked list
IV.13 A region for managing competing
accesses to a resource
IV.14 Queuing calls to a switchboard
IV.15 Allocating and deallocating a set
of resources
IV.16 Allocating and deallocating a set
of resources using buffers
IV.17 String scanner1
IV.18 String scanner2
IV.19 Removing an item from a double
linked list
IV.20 Update a record of a file
IV.21 Merge two sorted files
IV.22 Read a file with variable length records
IV.23 The use of spec modules
IV.24 Example of a context
IV.25 The use of prefixing and remote
modules
IV.26 The use of text i/o
IV.27 A generic stack
IV.28 An abstract data type
IV.29 Example of a spec module
IV.30 Object-Orientation: Modes for
Simple, Sequential Stacks
IV.31 Object-Orientation: Mode
Extension: Simple, Sequential Stack with Operation "Top"
IV.32 Object-Orientation: Modes for Stacks with Access Synchronization Appendix V – Decommitted features
V.1 Free directive
V.2 Integer modes syntax
V.3 Set modes with holes
V.4 Procedure modes syntax
V.5 String modes syntax
V.6 Array modes syntax
V.7 Level structure notation
V.8 Map reference names
V.9 Based declarations
V.10 Character string literals
V.11 Receive expressions
V.12 Addr notation
V.13 Assignment syntax
V.14 Case action syntax
V.15 Do for action syntax
V.16 Explicit loop counters
V.17 Call action syntax
V.18 RECURSEFAIL exception
V.19 Start action syntax
V.20 Explicit value receive names
V.21 Blocks
V.22 Entry statement
V.23 Register names
V.24 Recursive attribute
V.25 Quasi cause statements and quasi
handlers
V.26 Syntax of quasi statements
V.27 Weakly visible names and
visibility statements
V.28 Weakly visible names and
visibility statements
V.29 Pervasiveness
V.30 Seizing by modulion name
V.31 Predefined simple name strings
Appendix VI – Index of production rules