�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