Index
A
- addr function,  99, 222
 - alfa data type,  34
 - alignment of data types,  233
 - and operator,  2, 221
 - and then operator,  69 to 70
 - AnswerBook,  xxiii
 - Apollo DOMAIN Pascal,  227 to 229
 - append function,  102, 222
 - argc
- function,  99, 105, 222
 - procedure,  105
 
 - argv procedure,  99, 105, 222
 - arithmetic
- left shift,  109
 - operators,  66
 - right shift,  108
 - routines,  95
 
 - array data types,  34 to 37
- alfa,  34
 - as function return value,  89
 - conformant,  89
 - data representation,  37
 - declaring variables,  34
 - initializing variables,  36
 - string,  34
 - univ parameter type,  89
 - varying,  34
 
 - arrays,  73
 - arshft function,  97, 107, 171, 222
 - ASCII character set,  1
 - asl function,  97, 109, 222
 - asr function,  97, 111, 171, 223
 - assert statement,  48, 221
 - assignment statement,  13, 18, 20, 22
 - assignments,  63 to 65
- compatibility rules,  64
 - data types,  63
 - extensions,  221
 - null strings,  65
 - string constants,  65
 - strings, to and from,  64
 
 
B
- -b option to pc command,  214
 - bell character,  23, 220
 - bit operators,  66
 - bitwise operators,  151
- and,  2, 221
 - not,  201, 221
 - or,  2, 201, 221
 
 - block buffering,  214
 - boolean
- expression,  48
 - operators,  66
- and then,  69 to 70
 - or else,  71
 
 
 - boolean data types,  20 to 21
- assignment compatibility rules,  63
 - declaring constants,  21
 - declaring variables,  20
 - initializing variables,  20
 
 - buffering
- block,  214
 - file output,  213
 - line,  214
 
 - built-in procedures and functions,  2
- nonstandard,  95 to 201, 203, 222
 - standard,  95, 203
 
 
C
- -C option to pc command,  48, 218
 - C programming language,  94, 204
 - card function,  96, 112, 223
 - case statement,  48, 51 to 52, 157, 221
- otherwise clause,  51, 58
 - range of constants,  52
 - with -xl option,  51
 
 - character
- data type,  23
- assignment compatibility rules,  63
 - bell,  23, 220
 - data representation,  23
 - declaring constants,  23
 - declaring variables,  22
 - maxchar,  23, 220
 - minchar,  23, 220
 - tab,  23, 220
 
 - set,  1
 - string routines,  97
 
 - clock function,  99, 113, 223
 - close procedure,  98, 116, 204, 223
 - comments,  6, 48, 214, 219
 - concat function,  117, 223
 - conformant array,  89
 - const declaration,  77, 79, 222
 - conventions, typographical,  xxii
 
D
- data structure,  213
 - data types
- alignment,  233
 - array,  34 to 37
 - assignments,  63
 - boolean,  20 to 22
 - enumerated,  24
 - extensions,  220
 - file,  41
 - integer,  232
 - internal representation
- with -xl,  235
 - without -xl,  234
 
 - pointer,  41 to 45, 80
 - real,  231
 - real,  13 to 15
 - record,  27 to 33
 - set,  38 to 39
 - size restrictions,  232
 - space allocation,  232
 - subrange,  25
 
 - date procedure,  99, 118, 223
 - declarations,  77 to 84
- const,  79, 222
 - define,  222
 - extensions,  221
 - label,  222
 - type,  222
 - var,  14, 18, 27, 80 to 83
 
 - default field widths,  236
 - define
- declaration,  83, 222
 - variable,  80, 222
 
 - discard procedure,  99, 120, 223
 - documentation,  xxiii to xxiv
 - DOMAIN Pascal,  227 to 229
- features accepted but ignored,  227, 228
 - features not supported,  229
 - -xl option,  227
 
 - double data type,  13, 220, 232
 
E
- enumerated data,  23, 24
- assignment compatibility rules,  63
 - data representation,  24
 - with read and readln procedures,  23
 - with write and writeln procedures,  23
 
 - eof function,  135, 204 to 207
 - eoln function,  135, 204 to 209
 - error
- file, stderr,  212
 - recovery of input and output,  214
 
 - errout file variable,  211
 - exit statement,  52 to 53, 221
 - expo function,  96, 123, 223
 - extensions,  219 to 225
- assignments and operators,  221
 - built-in routines,  222
 - data types,  220
 - heading and declarations,  221
 - input and output,  225
 - lexical elements,  219
 - procedures and functions,  222
 - program compilation,  225
 - statements,  221
 
 - extern
- option,  92, 222
 - variable,  82, 84, 222
 
 - external option, See extern option
 
F
- field widths, default,  236
 - file
- permanent,  210
 - stderr,  211
 - stdin,  212
 - stdout,  211
 - temporary,  211
 
 - file data type,  41
- with -s option,  41
 - with -V0 and -V1 options,  41
 
 - file identifiers
- input,  117
 - output,  117
 
 - file variable,  210
- errout,  211
 - input,  211
 - output,  211
 
 - files
- external and Pascal file variables,  210
 - how to close,  117
 - permanent and temporary,  210
 
 - filesize function,  124, 223
 - firstof function,  96, 126, 223
 - flush procedure,  98, 130, 204, 213, 223
 - for statement,  52, 56, 221
 - formal parameter,  88, 92
 - FORTRAN programming language,  94
 - forward option,  91
 - function
- addr,  99
 - append,  102
 - argc,  99, 105
 - arshft,  97, 107, 171
 - asl,  97, 109
 - asr,  97, 111, 171
 - association with define declaration,  84
 - built-in,  95
 - card,  96, 112
 - clock,  99, 113
 - concat,  117
 - declarations,  77
 - eof,  135, 204 to 207
 - eoln,  135, 204 to 209
 - expo,  96, 123
 - extensions,  222
 - extern option,  92
 - external option,  92
 - filesize,  124, 223
 - firstof,  96, 126
 - forward option,  92
 - getenv,  99, 132
 - getfile,  98, 134, 204, 215
 - in_range,  138
 - index,  97, 139
 - internal option,  92
 - land,  97, 142
 - lastof,  144
 - length,  97, 145
 - lnot,  97, 149
 - lor,  97, 150
 - lshft,  97, 152
 - lsl,  97, 153
 - lsr,  97, 153
 - max,  96, 153
 - min,  96, 156
 - nonpascal option,  94
 - parameters,  85 to 88
 - private,  84, 92, 222
 - public,  84, 222
 - random,  96, 162
 - return statement,  59 to 60
 - return value,  89, 121
 - returning structured types,  222
 - rshft,  97, 171
 - seed,  96, 172
 - sizeof,  96, 176
 - substr,  97, 183
 - sysclock,  99, 114, 184
 - tell,  224
 - time,  185
 - trim,  97, 191, 225
 - type transfer,  99, 193
 - var declaration,  14, 18, 21, 23, 28
 - variable option,  92
 - wallclock,  99, 195
 - xor,  97, 200
 
 
G
- getenv function,  99, 132, 223
 - getfile function,  98, 134, 204, 215, 223
 - global variable,  81
 - goto statement,  48, 54, 59, 221
- exiting current block,  54
 - use of identifier in,  54
 
 
H
- halt procedure,  99, 136, 223
 - headings
- extensions,  221
 - function,  84
 - program,  210
 
 
I
- identifiers,  2, 4, 54, 59
- as labels,  77
 - in define declaration,  83
 - nonstandard predeclared,  4, 220
 - restrictions to,  231
 - standard predeclared,  4, 220
 
 - if statement,  48, 208, 221
 - implementation restrictions,  231 to 236
 - in out parameter,  85, 88
 - in parameter,  85, 88, 215
 - in_range function,  138, 223
 - include directive and statement,  216
 - index function,  97, 139, 223
 - initializing variables,  83
 - input
- environment,  203 to 218
 - error recovery,  214
 - extensions,  225
 - file
- stdin,  212
 - variable,  211
 
 
 - input and output
- library,  212
 - routines, nonstandard and standard,  204
 - trap handler,  215
 
 - integer data types,  16 to 20
- assignment compatibility rules,  63
 - data representation,  19
 - declaring constants,  18
 - integer,  17
 - integer16,  17, 220
 - integer32,  220
 - maxint,  232
 - minint,  19, 232
 - specifying in another base,  19
 - unsigned integer,  17
 
 - integer16,  20, 220
 - integer32,  17, 20, 220
 - interactive programming,  203
 - internal option,  92, 222
 - ioerr.h file,  215
 
K
- keywords,  2
 
L
- -L option to pc command,  2, 228
 - label declaration,  77, 222
 - land function,  97, 142, 223
 - lastof function,  144, 223
 - length function,  97, 145, 223
 - lexical
- characters,  1
 - elements,  1
 
 - line buffering,  214
 - linelimit procedure,  98, 147, 204, 223
 - lnot function,  97, 149, 223
 - local variable,  80, 81, 100
 - longreal,  220
 - lor function,  97, 150, 224
 - lowercase characters, mapping,  2
 - lshft function,  97, 151, 224
 - lsl function,  97, 153
 - lsr function,  97, 153, 224
 
M
- manuals, See documentation
 - mapping to lowercase characters,  2
 - max function,  153, 224
 - maxchar,  23, 220
 - message procedure,  98, 155, 204, 213, 224
 - min function,  96, 156, 224
 - minchar,  23, 220
 - mod operators,  66
 - modules
- extern or external option,  92, 222
 - extern variables,  82, 84
 - public and private routines,  84
 - scope of variables,  80
 
 
N
- nested routines,  235
 - next statement,  56
 - nil,  79
 - nonpascal option,  94, 222
 - nonstandard special symbols
- !,  2, 219
 - #,  2, 219
 - %,  2, 219
 - &,  2, 219
 - |,  2, 219
 - ~,  2, 219
 
 - not operator,  2, 201, 221
 - null procedure,  99, 157, 224
 - null string assignments,  65
 
O
- open procedure,  98, 117, 158, 204, 210, 224
 - operators,  66 to 76, 79
- and,  2, 221
 - and then,  69 to 70
 - arithmetic,  66
 - bit,  66, 68
 - boolean,  66, 68
 - extensions,  221
 - mod,  66
 - not,  2, 201, 221
 - or,  2, 201, 221
 - or else,  70
 - precedence of,  76
 - relational,  66, 72
 - set,  66, 71
 - string,  66, 75
 
 - options for routines,  91 to 94
- extern or external,  92, 222
 - internal,  92
 - nonpascal,  94, 227
 - variable,  92
 
 - or else operator,  70
 - or operator,  2, 201, 221
 - otherwise clause in case statement,  51, 58
 - out parameter,  85, 88
 - output
- environment,  203 to 218
 - error recovery,  214
 - extensions,  225
 - file
- buffering,  213
 - stdout,  212
 - variable,  211
 
 
 
P
- packed records,  30
 - parameters,  84 to 89
- formal,  86, 88, 92
 - in,  85, 88, 215
 - in out,  85, 88
 - out,  85, 88
 - passing conventions,  86
 - type checking,  88
 - univ type,  88
 - value,  86
 - var,  86, 88
 
 - Pascal
- extensions in the compiler,  xix
 - symbols,  2
 - validation summary,  237 to 240
 
 - pc command
- -b option,  214
 - -C option,  48, 218
 - document reference,  2
 - -L option,  2, 228
 - -s option,  2, 3
 - -V0 option,  3
 - -V1 option,  3
 - -xl option,  9, 17, 24, 94, 227, 234
 
 - pcexit procedure,  99
 - pointer data type,  41 to 45
- assignment compatibility rules,  63
 - data representation,  45
 - declaring variables,  42
 - initializing variables,  45
 - procedure and function,  43, 80
 - univ_ptr,  42
 - universal,  80
 
 - precedence of operators,  76
 - private
- function,  84
 - procedure,  84
 - variable,  81, 222
 
 - procedure
- append,  222
 - argc,  105
 - argv,  99, 105
 - association with define declaration,  84
 - built-in,  95
 - close,  98, 116, 204
 - date,  99, 118
 - declarations,  77
 - discard,  99, 120
 - extensions,  222
 - extern option,  92
 - external option,  92
 - flush,  98, 130, 204, 213
 - forward option,  92
 - halt,  99, 136
 - internal option,  92
 - linelimit,  98, 147, 204
 - message,  98, 155, 204, 213
 - nonpascal option,  94
 - null,  99, 157
 - open,  98, 117, 158, 204, 210
 - parameters,  85 to 89
 - pcexit,  99
 - private,  92, 222
 - public,  222
 - read,  23, 98, 163, 204, 205, 207, 209, 211
 - readln,  23, 98, 135, 163, 204, 207, 209, 211
 - remove,  98, 166, 204
 - reset,  98, 117, 135, 167, 204, 212
 - return statement,  59
 - rewrite,  98, 135, 168, 204, 211
 - seek,  174, 224
 - stlimit,  99, 180
 - stradd,  182, 224
 - time,  99, 187
 - trace,  225
 - var declaration,  14, 21, 23, 28, 36, 39, 83
 - variable option,  92
 - write,  24, 98, 155, 198, 204, 211, 212
 - writeln,  24, 98, 155, 198, 204, 211, 212
 
 - program
- compilation extensions,  225
 - headings,  210
 - unit,  84
 
 - public
- function,  84
 - procedure,  84
 - variable,  81, 84, 222
 
 
R
- random function,  162, 224
 - read procedure,  23, 98, 163, 204, 205, 207, 209, 211, 224
 - readln procedure,  23, 98, 135, 163, 207, 209, 211, 224
 - real data types,  13 to 15
- as function return value,  89
 - data representation,  15
 - declaring
- constants,  14
 - variables,  13
 
 - double,  13, 220, 232
 - longreal,  13, 220
 - real,  13, 15
 - shortreal,  13, 15, 220
 - single,  13, 15, 220, 232
 - with -xl option,  13, 17
 
 - record data type,  26 to 33
- as function return value,  89
 - assignment compatibility rules,  63
 - declaring variables,  26
 - initializing
- data,  27
 - variables,  83
 
 - representation of unpacked records,  30
 
 - records,  73
 - relational operators,  66, 72
 - remove procedure,  98, 166, 204, 224
 - repeat statement,  52, 56, 221
 - reserved words,  3
- nonstandard extensions,  4
 - standard,  3
 
 - reset procedure,  98, 117, 135, 167, 204, 212, 224
 - return statement,  59, 221
 - rewrite procedure,  98, 117, 135, 168, 204, 211, 225
 - routine
- addr,  96, 99, 222
 - append,  98, 102
 - argc,  99, 105, 222
 - argv,  99, 105, 222
 - arithmetic,  95
 - arshft,  97, 108, 171, 222
 - asl,  97, 110, 222
 - asr,  97, 171, 223
 - built-in,  95 to 201
 - card,  96, 112, 223
 - clock,  99, 114, 223
 - close,  98, 116, 204, 223
 - concat,  97, 223
 - date,  99, 118, 223
 - discard,  121, 223
 - eof,  135, 204 to 207
 - eoln,  135, 204 to 209
 - expo,  96, 123, 223
 - extern option,  92
 - external option,  92
 - filesize,  98
 - firstof,  96, 126, 223
 - flush,  98, 130, 204, 213, 223
 - forward option,  91
 - getenv,  99, 223
 - getfile,  98, 135, 204, 215, 223
 - halt,  99, 136, 223
 - in_range,  96, 138, 223
 - index,  97, 139, 140, 223
 - input and output,  203
 - internal option,  92
 - land,  97, 142, 223
 - lastof,  96, 144, 223
 - length,  97, 146, 223
 - linelimit,  98, 147, 204, 223
 - lnot,  97, 149, 223
 - lor,  97, 150, 224
 - lshft,  97, 152, 224
 - lsl,  97, 153
 - lsr,  97, 153, 224
 - max,  96, 224
 - message,  98, 155, 204, 213, 224
 - min,  96, 157, 224
 - nonpascal option,  94
 - null,  99, 157, 224
 - open,  98, 117, 158, 204, 210, 224
 - parameters,  85 to 89
 - private,  84, 92
 - public,  84
 - random,  96, 162, 224
 - read,  98, 163, 204, 205, 207, 209, 211, 224
 - readln,  98, 135, 163, 204, 207, 209, 211, 224
 - remove,  98, 166, 204, 224
 - reset,  98, 117, 135, 167, 204, 212, 224
 - return statement,  59
 - rewrite,  98, 117, 135, 169, 204, 211, 225
 - rshft,  97, 171, 224
 - seed,  96, 172, 224
 - seek,  98
 - sizeof,  96, 176, 224
 - stlimit,  99, 180, 224
 - stradd,  97
 - substr,  97, 183, 224
 - sysclock,  99, 114, 184, 224
 - tell,  98, 185, 224
 - time,  99, 187, 224
 - trace,  99, 189, 225
 - trim,  97, 191, 225
 - type transfer,  99, 193, 225
 - var declaration,  36, 39
 - variable option,  92
 - wallclock,  99, 195, 225
 - write,  98, 155, 198, 204, 211, 212, 225
 - writeln,  98, 155, 198, 204, 211, 212, 225
 - xor,  97, 200, 225
 
 - routine parameters,  85 to 89
 - routines,  79
 - rshft function,  97, 171, 224
 
S
- -s option to pc command,  2, 3
 - scope of variables
- private,  80
 - public,  80
 
 - seed function,  162, 172, 224
 - seek procedure,  174, 224
 - set
- data types,  38 to 39
- as function return value,  91
 - assignment compatibility rules,  63
 - data representation,  39
 - declaring variables,  38
 - returning number of elements,  112
 
 - initializing variables,  83
 - operators,  66, 71
 
 - shortreal,  13, 15, 220
 - signal handler,  214
 - single,  13, 15, 220, 232
 - sizeof function,  176, 224
 - space allocation of data types,  233
 - special symbols, nonstandard and standard,  2
 - standard files
- error,  212
 - input,  212
 - output,  212
 
 - statements,  47 to 62
- assert,  48, 221
 - case,  47, 51 to 52, 157, 221
 - exit,  52 to 53, 221
 - extensions,  221
 - for,  52, 56, 221
 - goto,  48, 54, 59, 221
 - if,  48, 208, 221
 - next,  56
 - repeat,  52, 56, 221
 - return,  59, 221
 - while,  52, 56, 206, 209, 221
 - with,  47, 60, 221
 
 - static variable,  14, 18, 21, 23, 28, 37, 39, 83, 222
 - stderr,  204, 211
 - stdin,  212
 - stdout,  211
 - stlimit procedure,  99, 180, 224
 - stradd procedure,  182, 224
 - string
- assignments,  64
 - constants, assignments,  65
 - data type,  34
 - operators,  66, 75
 
 - subrange data,  17, 25 to 26
- assignment compatibility rules,  63
 - data representation,  25
 - declaring variables,  25
 - with -xl option,  26
 
 - substr function,  97, 183, 224
 - symbols,  2
 - sysclock function,  99, 114, 184, 224
 
T
- tab character,  23, 220
 - tell function,  185, 224
 - time procedure,  99, 187, 224
 - trace procedure,  225
 - trace routine,  189
 - trim function,  97, 191, 225
 - type checking of parameters,  88
 - type declaration,  222
 - type transfer function,  193, 225
 - typographical conventions,  xxii
 
U
- univ parameter,  85
 - univ parameter type,  88
 - univ_ptr,  42, 100, 135
 - unpacked records
- fixed,  30
 - variant,  30
 
 - unsigned integer,  17
 
V
- -V0 option to pc command,  3
 - -V1 option to pc command,  3
 - value parameter,  86, 88
 - value parameter,  85
 - var
- declaration,  14, 18, 20, 22, 27, 36, 80 to 83, 222
- attributes,  80
 - initialization,  83
 - scope,  80
 
 - parameter,  86, 88
 
 - var parameter,  85
 - variable
- attributes,  80
 - define,  81, 83, 222
 - extern,  81, 82, 84, 222
 - global,  80
 - initialization,  83
 - local,  80, 83, 100
 - option,  92, 222
 - private,  80, 222
 - public,  80, 81, 83, 222
 - scope,  80
 - static,  81, 222
 
 - varying data type,  34
 
W
- wallclock function,  99, 195, 225
 - while statement,  52, 56, 206, 209, 221
 - with
- alternate form,  60 to 62
 - statement,  48, 221
 
 - write procedure,  23, 98, 155, 198, 204, 211, 212, 225
 - writeln procedure,  23, 98, 155, 198, 204, 211, 212, 225
 
X
- -xl option to pc command,  9, 17, 24, 227
- with define attribute,  83
 - with nonpascal routine option,  94
 
 - xor function,  97, 200, 225