Index
A
- -a option to pc command,  24
 - a.out,  2, 8, 9, 17
 - address parameters,  173
 - alignment of types in FORTRAN,  169
 - and operator,  42
 - AnswerBook,  xxvi
 - arguments, See parameters
 - arithmetic exceptions in math libraries,  231
 - arrays, conformant
- parameters by value,  105, 118, 128, 197
 
 - as(1) assembler,  44
 - assert statement,  25
 - automatic replacement of errors,  211
 - Auto-Read
- definition,  65
 - for dbx, disable,  64
 
 
B
- -B option to pc command,  24
 - -b option to pc command,  25
 - binding the multithread library,  238
 - block buffering of program output,  25
 - boolean expression,  40, 42
 - breaking a program into parts,  71
 - buffering of program output, controlling,  24
 - built-in function and procedure type errors,  215
 
C
- -C option to pc command,  25, 53
 - -c option to pc command,  25
 - C programming language,  93 to 139, 253
- arrays by value,  118
 - C calls Pascal,  97 to 120
 - compatible types,  94
 - function return values,  119, 135
 - global variables in C and Pascal,  138
 - parameter passing,  97
 - parameters as pointers to procedures,  136
 - Pascal
- calls C,  121 to 137
 - interface,  93
 
 - procedures and functions as parameters,  136
 - records and structures,  109, 129
 - sharing declarations,  92
 - strings by value,  118
 - value parameters,  134 to 135
 - var parameters,  98, 121
 
 - C++ programming language,  141 to 165
- arguments, passing of
- by reference,  143, 158
 - by value,  154, 161
 
 - arrays, fixed,  148
 - C++ calls Pascal,  142 to 158
 - character strings,  146
 - compatible types,  142
 - compiler options,  141
 - function return values,  155, 163
 - functions,  158
 - global variables in C++ and Pascal,  164
 - -lpc and -lc options,  141
 - name encoding,  142
 - parameter passing,  155
 - Pascal
- calls C++,  158 to 163
 - file pointers to C++,  165
 - interface,  141
 
 - records and structures,  150
 - value parameters,  161
 
 - -calign option to pc command,  26
 - cg, the code generator,  18
 - -cg89 option to pc command,  26
 - -cg92 option to pc command,  26
 - character data type,  32, 50
 - characters, illegal,  209
 - compatible types
- Pascal and C,  94
 - Pascal and C++,  142
 - Pascal and FORTRAN,  169
 
 - compiler,  8, 11, 17 to 70
- driver,  18
 - panics,  221
 
 - compiler directives,  254 to 271
- #include,  71
 - %config,  255
 - %debug,  26, 257
 - %else,  258
 - %elseif,  259
 - %elseifdef,  260
 - %enable,  254, 262
 - %endif,  263
 - %error,  263
 - %exit,  264
 - %if,  255, 265
 - %ifdef,  263, 265, 266
 - %include,  267, 271
 - %list,  268
 - %nolist,  270
 - %slibrary,  271
 - %var,  255, 266, 271
 - %warning,  271
 
 - compiler semantic errors,  214 to 221
- can't read and write scalars,  216
 - expression diagnostics,  216
 - function and procedure type errors,  215
 - goto statement,  220
 - incompatible types,  214
 - procedures and functions as parameters,  215
 - scalar,  215
 - type equivalence,  218
 - uninitialized variables,  220
 - unreachable statements,  219
 - unused item errors,  220
 
 - compiler syntax errors,  209 to 213
- digits in real numbers,  210
 - expected symbols, malformed constructs,  212
 - expected, unexpected, end-of-file, QUIT,  213
 - illegal characters,  209
 - replacements, insertions, deletions,  211
 - string errors,  210
 - undefined or improper identifiers,  212
 
 - compiling
- a Pascal program,  8, 13
 - multithreaded programs,  238
 - units,  73
 
 - -cond option to pc command,  26, 257
 - cond_broadcast(3T),  241
 - cond_signal(3T),  241
 - cond_wait(3T),  241
 - conditional
- compilation,  26
 - variables,  241, 254
- -config option,  253, 260, 264
 - defined,  254
 - undefined,  253
 
 
 - %config directive,  255
 - -config option to pc command,  27, 254, 260
 - conformant arrays
- parameters between Pascal and C,  105, 118, 128
 - parameters between Pascal and C++,  155, 161, 163
 - parameters between Pascal and FORTRAN,  186, 197
 
 - conventions,  xxv
 - cpp
- #include directive,  71
 - the C preprocessor,  18, 27, 44, 53, 253
 
 - cppas,  253 to 271
- compiler directives,  254 to 271
 - conditional variables,  253
 - preprocessor,  26, 27, 44
 - the -xl preprocessor,  18, 19
 
 
D
- -D option to pc command,  27
 - -dalign option to pc command,  27
 - data type character,  32, 50
 - dbx,  3, 30, 65, 249, 250
 - %debug compiler directive,  26, 257
 - debugger,  3, 249
 - debugging
- disable Auto-Read for dbx,  64
 - fix-and-continue feature,  3
 - multithreaded programs,  249, 250
 - with dbx,  3, 249, 250
 - with -g option to pc command,  30
 
 - declarations
- define,  87
 - sharing between multiple units of different languages,  91
 
 - #define statement,  27
 - define
- declaration,  87
 - variable,  80
 
 - define variable,  86
 - diagnostics, format of,  214
 - digits in real numbers,  210
 - directives, See compiler directives
 - -dn option to pc command,  27
 - documentation,  xxvi to xxvii
 - DOMAIN Pascal,  26, 27
 - -dryrun option to pc command,  28
 - -dy option to pc command,  28
 
E
- %else directive,  258
 - %elseif directive,  259
 - %elseifdef directive,  260
 - %enable directive,  254, 262
 - %endif directive,  263
 - end-of-file errors,  213
 - enumerated types,  96, 170
 - equivalence of types, errors,  218
 - %error directive,  263
 - error recovery,  211
 - errors,  209 to 224
- automatic replacement,  211
 - from incompatible types,  214
 - from uninitialized variables,  220
 - from unreachable statements,  219
 - from unused items,  220
 - illegal characters,  209
 - in constructs,  212
 - in ends of program files,  213
 - in expressions,  216
 - in function and procedure types,  215
 - in goto statement,  220
 - in identifiers,  212
 - in reading and writing scalars,  216
 - in real numbers,  210
 - in scalars,  215
 - in semantics,  214
 - in strings,  210
 - in symbols,  212
 - in syntax,  209
 - in type equivalence,  218
 - out of memory,  221
 - runtime,  221 to 224
 
 - exception-handling function in math libraries,  232
 - executable file,  2, 9, 11, 18, 50
- default,  9, 17
 - how to rename,  9
 
 - execution profile,  42
 - %exit directive,  264
 - expression diagnostics,  216
 - extended language features,  60
 - extern
- option,  90, 92
 - variable,  80
 
 - external option, See extern option
 
F
- -fast option to pc command,  28
 - faster linking and initializing,  65
 - fbe(1) assembler,  44
 - features, Pascal compiler,  2
 - file
- name extensions,  20
 - variable,  12
 
 - -flags option to pc command,  28, 31
 - floating-point, nonstandard,  28
 - -fnonstd option to pc command,  28
 - -fns option to pc command,  29
 - format of error diagnostics,  214
 - FORTRAN programming language,  167 to 208
- and Pascal, compatible types,  169
 - arrays by value,  186
 - character dummy arguments,  193
 - compatible types,  168
 - FORTRAN calls Pascal,  172 to 189
 - function return values,  188, 205
 - incompatibilities with Pascal,  170
 - parameter passing,  171
 - Pascal
- calls FORTRAN,  189 to 206
 - interface,  167
 
 - procedures and functions as parameters,  206 to 208
 - records and structures,  179, 198
 - sharing declarations,  92
 - strings by value,  186
 - value parameters,  185, 201
 - var parameters,  172, 190 to 201
 
 - -fround=r option to pc command,  29
 - -ftrap=t option to pc command,  29
 - function
- extern option,  90, 92
 - external,  92
 - return values with C,  119, 135
 - return values with FORTRAN,  188, 205
 - type errors,  215
 
 
G
- -G option to pc command,  30
 - -g option to pc command,  30
 - global variables
- C and Pascal,  138
 - C++ and Pascal,  164
 
 - goto statement, compiler semantic error,  220
 
H
- -H option to pc command,  31, 53
 - header files
- in a program,  74
 - math libraries,  225
 
 - -help option to pc command,  28, 31
 - -hname option to pc command,  31
 
I
- -I option to pc command,  31
 - -i option to pc command,  32
 - I/O errors,  216, 221
 - identifier errors,  212
 - identifiers,  32, 50, 80
 - IEEE support functions in math libraries,  228
 - %if directive,  255, 265
 - %ifdef directive,  263, 265, 266
 - ild(1) incremental linker,  44
 - illegal characters,  209
 - #include directive,  71
 - %include directive,  267, 271
 - include file,  88, 265
- and library header files,  78
 - as header file,  74
 - introduction,  71
 - producing a listing of,  32
 - search order,  31
 - to break a program up,  71
 
 - incompatible type errors,  214
 - input,  10 to 13
 - installation,  xxiii
 - interface
- C++-Pascal,  141
 - C-Pascal,  93
 - FORTRAN-Pascal,  167
 
 - internationalization,  3
 - iropt,  44
 
K
- -keeptmp option to pc command,  32
 - keyword,  32, 50
 - -Kpic and -KPIC options to pc command,  43
 
L
- -L option to pc command,  32
 - -l option to pc command,  33, 269
 - language support, See internationalization
 - ld(1) linker,  18, 25, 34, 44, 238
 - -Ldirectory option to pc command,  33
 - Level 0 standard Pascal,  1, 50
 - Level 1 standard Pascal,  1, 50
 - lib object library,  34
 - libm functions in math libraries,  227
 - libm.a math library,  226
 - libm.so math library,  226
 - -libmieee option to pc command,  33
 - -libmil option to pc command,  33
 - libpc_mt library,  34
 - libraries
- binding with #include,  238
 - creating,  78
 - multithread, libthread,  237
 - multithreading subroutines, libthread,  240
 - multithreading-safe, libc, libpc,  237
 
 - libsunmath support in math libraries,  234
 - libsunmath.a math library,  226
 - licensing,  5
- -noqueue option,  5
 - queuing,  5
 - status,  5
 - -xlicinfo option,  5
 
 - lightweight processes, See  LWPs
 - line buffering, of program output,  24
 - linelimit procedure,  25
 - linker, See ld linker
 - linking units,  73
 - %list directive,  268
 - listing the Pascal program,  33
 - -llib option to pc command,  34
 - locale language support,  5
 - locks
- multiple-readers/single-writer,  240
- rw_rdlock(3T),  242
 - rw_unlock(3T),  242
 - rw_wrlock(3T),  242
 - rwlock(3T),  242
 - rwlock_init(3T),  242
 
 - mutual exclusion lock
- mutex(3T),  241
 - mutex_lock(3T),  241
 - mutex_unlock(3T),  241
 
 
 - logic errors,  219
 - lowercase characters,  32, 50
 - LWPs
- in UNIX processes,  240
 - multiplexing, scheduling,  240
 - threads control,  239
 
 
M
- malformed construct errors,  212
 - manuals, See documentation
 - math libraries,  225 to 235, 237 to ??
- arithmetic exceptions,  231
 - contents,  226
 - function and procedure prototypes,  225
 - IEEE support functions,  228
 - libm functions,  227
 - libm.a,  226
 - libm.so,  226
 - libsunmath support,  234
 - libsunmath.a,  226
 - matherr() exception-handling function,  232
 - Pascal header files,  225
 - SPARC libraries,  230
 
 - memory, out of,  221
 - -misalign option to pc command,  34
 - module
- heading,  80
 - source files,  79
 - unit,  73
 
 - -mt option to pc command,  34, 238
 - multiprocessor systems,  240
 - multithread library,  237
- thr_setconcurrency function,  240
 
 - multithreading
- benefits,  239
 - libpc_mt library,  34
 - lightweight processes, LWPs,  239
 - programming introduction,  237
 - Solaris threads,  239, 242
 - UNIX processes,  239
 - See also threads
 
 - mutex_lock(3T),  241
 - mutex_unlock(3T),  241
 - mv command,  9
 
N
- -native option to pc command,  34
 - -nolib option to pc command,  35
 - -nolibmil option to pc command,  35
 - %nolist directive,  270
 - -non_init option to pc command,  35 to 39
 - nonstandard floating point,  28
 - -noqueue licensing option,  5, 39
 - -notrace option to pc command,  39
 
O
- -O option to pc command,  40
 - -o option to pc command,  9, 42
 - object code optimizer,  40
 - object file,  18
 - operating environment, See Solaris 2.x operating system
 - operator
- and,  42
 - or,  42
 - redirection (>),  11
 
 - options
- order of processing,  23
 - to pc command,  23 to 70
 
 - order of processing, options,  23
 - out of memory error,  221
 - output,  10 to 13
 
P
- -P option to pc command,  40, 42
 - -p option to pc command,  42
 - panics, compiler,  221
 - parameter passing
- C and Pascal,  97
 - C++ and Pascal,  155
 - FORTRAN and Pascal,  171
 
 - parameters
- as pointers to procedures with C,  136
 - passed by address,  98, 172, 190, 201
 - passed by reference,  98, 172, 190, 201
 - passed by reference between C and Pascal,  121 to 133
 - passed by value
- between Pascal and C,  134 to 135
 - between Pascal and C++,  155
 - between Pascal and FORTRAN,  184, 201 to 206
 
 - value conformant array,  105, 118, 128, 197
 - value conformant array passed between Pascal and FORTRAN,  186
 - var,  99, 121 to 133, 172, 190 to 201
 
 - Pascal program
- how to compile,  8, 13
 - how to list,  33
 - how to run,  9 to 13
 - how to write,  7
 
 - pc command,  2, 7, 8, 11, 17 to 70
- -a option,  24
 - -B option,  24
 - -b option,  25
 - -C option,  25
 - -c option,  25
 - -calign option,  26
 - -cg89 option,  26
 - -cg92 option,  26
 - -cond option,  26, 257
 - -config option,  27, 254, 260, 264
 - -D option,  27
 - -dalign option,  27
 - -dn option,  27
 - -dryrun option,  28
 - -dy option,  28
 - -fast option,  28
 - -flags option,  28, 31
 - -fnonstd option,  28
 - -fns option,  29
 - -fround=r option,  29
 - -ftrap=t option,  29
 - -G option,  30
 - -G option,  30
 - -g option,  30
 - -H option,  31, 53
 - -help option,  28, 31
 - -hname option,  31
 - -I option,  31
 - -i option,  32
 - -keeptmp option,  32
 - -Kpic and -KPIC options,  43
 - -L option,  32
 - -l option,  33, 269
 - -Ldirectory option,  33
 - -libmieee option,  33
 - -libmil option,  33
 - list of options,  23 to 70
 - -llib option,  34
 - -misalign option,  34
 - -mt option,  34, 238
 - -native option,  34
 - -nolib option,  35
 - -nolibmil option,  35
 - -non_init option,  35
 - -noqueue option,  39
 - -notrace option,  39
 - -O option,  40
 - -o option,  9, 42
 - -P option,  40, 42
 - -p option,  42
 - -pg option,  42
 - -PIC option,  43
 - -pic option,  43
 - -Qoption,  44
 - -qp option,  44
 - -Qpath option,  44
 - -Qproduce option,  44
 - -Rpath option,  45
 - -Rw option,  45
 - -S option,  50
 - -s option,  50
 - -s0 and -s1 options,  53
 - -sb option,  50
 - -sbfast option,  50
 - -tc option,  51
 - -temp option,  51
 - -time option,  52
 - -U option,  53
 - -V option,  17
 - -v option,  53
 - -VO and -V1 options,  53
 - -w option,  53
 - -xarch=a option,  53
 - -xcache=c option,  57
 - -xchip=c option,  58
 - -xF option,  59
 - -xildoff option,  60
 - -xildon option,  60
 - -xl option,  60, 253
 - -xlibmopt option,  61
 - -xlicinfo option,  61
 - -xMerge option,  61
 - -xnolibmopt option,  61
 - -xregs=r option,  64
 - -xs option,  64
 - -xsafe=mem option,  65
 - -xspace option,  65
 - -xtarget=t option,  65
 - -Z option,  70
 - -ztext option,  70
 
 - pc0,  18, 44
 - pc3,  18, 44
 - -pg option to pc command,  42
 - -PIC option to pc command,  43
 - -pic option to pc command,  43
 - pointer range checking,  31
 - preprocessor,  31
- cpp(1),  27, 44
 - cppas,  26, 27, 44
 
 - private variable,  77, 84
 - procedure
- and function type errors,  215
 - extern option,  90, 92
 - external,  92
 - linelimit,  25
 - type errors,  215
 - write,  50
 
 - program
- breakup of a,  71
 - logic errors,  219
 - source files,  79
 - unit,  72
 
 - programming, multi-thread,  237
 - public variable,  77, 84
 
Q
- -Qoption to pc command,  44
 - -qp option to pc command,  44
 - -Qpath option to pc command,  44
 - -Qproduce option to pc command,  44
 - queuing for a license,  5
 - QUIT errors,  213
 
R
- range check on pointers,  31
 - reading and writing scalars, errors in,  216
 - real numbers, errors,  210
 - records, variant,  112, 130, 199
 - redirecting input and output,  11 to 13
 - reference parameters,  98, 121, 133, 173
 - replacements in the case of errors,  211
 - -Rpath option to pc command,  45
 - running a Pascal program,  9 to 13
 - runtime errors,  221 to 224
 - -Rw option to pc command,  45
 - rw_rdlock(3T),  242
 - rw_unlock(3T),  242
 - rw_wrlock(3T),  242
 - rwlock(3T) function,  242
 - rwlock_init(3T),  242
 
S
- -S option to pc command,  50
 - -s option to pc command,  50
 - -s0 and -s1 options,  53
 - -sb option to pc command,  50
 - -sbfast option to pc command,  50
 - scalar errors,  215
 - sema_init(3T) function,  242
 - sema_post(3T) function,  242
 - sema_wait(3T) function,  242
 - semantic errors,  214
 - semaphores, See signaling
 - separate compilation,  79 to 92
- define variable,  80
 - extern variable,  80
 - module source files,  80
 - program source files,  80
 
 - separately compiled units,  72
 - set types,  97, 114, 171, 183
 - shared libraries,  24
 - sharing
- routines among units,  80 to 92
 - variables among units,  75 to 77, 80 to 90
 - variables and routines across multiple units
- using define variable,  86
 - using extern variable,  90
 - using include files,  82, 88
 - using public var declarations,  84
 - with -xl,  84
 - without -xl,  81
 
 
 - shortreal,  157, 186
 - signaling,  241
- Dijkstra semaphores,  242
 - sema_init(3T),  242
 - sema_post(3T),  242
 - sema_wait(3T),  242
 - semaphore(3T),  242
 
 - sizes of types,  169
 - %slibrary directive,  271
 - source
- code,  44
 - file,  42
 
 - SPARC math libraries,  230
 - standard
- input file,  10
 - output file,  10
 - Pascal, Level 0 and 1,  1, 50
 
 - statement
- #define,  27
 - assert,  25
 
 - stdin,  10
 - stdout,  10
 - string errors,  210
 - symbol
- errors,  212
 - table for dbx,  64
 
 - syntax errors and recovery,  209 to 211
 
T
- -tc option to pc command,  51
 - tcov(1) utility,  24
 - -temp option to pc command,  51
 - text editor
- textedit,  3
 - vi,  3
 
 - thr_setconcurrency function,  240
 - thread
- blocking,  242
 - components,  239
 - creation,  240
 - creation facilities,  239
- thr_create(3T) function,  239
 - thr_exit(3T) function,  239
 - thr_join(3T) function,  239
 - thr_self(3T) function,  239
 
 - critical section,  241
 - multithread library
- thr_setprio function,  240
 
 - unblocking,  242
 - waiting,  242
 
 - threads
- control using LWPs,  239
 - scheduling,  240
 - synchronization,  240
 - See also multithreading
 
 - -time option to pc command,  52
 - type
- equivalence, errors,  218
 - shortreal,  157, 186
 - sizes, See sizes of types
 
 - types
- compatible in C and Pascal,  94
 - compatible in C++ and Pascal,  142
 - compatible in FORTRAN and Pascal,  169
 - enumerated,  96, 170
 - incompatible,  214
 - set,  97, 114, 171, 183
 
 
U
- -U option to pc command,  53
 - uninitialized variable error,  220
 - units
- compiling and linking,  73
 - introductory information,  71 to 77
 - separately compiled,  72
 - sharing routines,  80 to 92
 - sharing variables,  75 to 77, 80 to 90
 
 - unreachable statements, errors,  219
 - unused item errors,  220
 - uppercase characters,  32, 50
 - /usr/include,  32
 
V
- -V option to pc command,  17
 - -v option to pc command,  53
 - value conformant array parameters,  105, 118, 128, 186, 197
 - value parameters
- with C,  134, 135
 - with C++,  155
 - with FORTRAN,  185, 201
 
 - %var directive,  255, 266, 271
 - variable
- condition(3T),  241
 - conditional,  27, 241, 254
 - define,  86
 - initialization of and errors,  220
 - parameters,  98
- with C,  121, 133
 - with C++,  164
 - with FORTRAN,  172
 
 - private,  77, 84
 - public,  77, 84
 
 - variables and routines, sharing across multiple units
- using define
- variable,  86
 
 - using define declaration,  87
 - using extern variable,  90
 - using include files,  82, 88
 - using public var declarations,  84
 - without -xl,  81
 
 - variant records,  112, 130, 199
 - vi text editor,  3
 - -VO and -V1 options to pc command,  53
 
W
- -w option to pc command,  53
 - %warning directive,  271
 - warning diagnostic,  53
- for -non_init and - Rw options,  38
 - for -non_init option,  35, 36, 38
 - -non_init option, early warnings versus late warnings,  35
 
 - write procedure,  50
 - writing a Pascal program,  7
 - writing scalars, errors in,  216
 
X
- -xarch=a option to pc command,  53
 - -xcache=a option to pc command,  57
 - -xchip=c option to pc command,  58
 - -xF option to pc command,  59
 - -xildoff option to pc command,  60
 - -xildon option to pc command,  60
 - -xl option to pc command,  60, 253
 - -xlibmopt option to pc command,  61
 - -xlicinfo licensing option,  5
 - -xlicinfo option to pc command,  61
 - -xMerge option to pc command,  61
 - -xnolibmopt option to pc command,  61
 - -xregs=r option to pc command,  64
 - -xs option to pc command,  64
 - -xsafe=mem option to pc command,  65
 - -xspace option to pc command,  65
 - -xtarget=t option to pc command,  65
 
Z
- -Z option to pc command,  70
 - -ztext option to pc command,  70