Table of Contents


Index

Symbols

! (exclamation mark) (Fortran 95 comments), 13
#define preprocessor directive (C), 178
#else preprocessor directive (C), 179
#error preprocessor directive (C), 181
#if preprocessor directive (C), 179
#include preprocessor directive (C), 176
#pragma preprocessor directive (C), 181
& (ampersand) (Fortran 95 continued statements), 12
& (standard I/O) keywords (Icon), 339

A

Abort function (C), 211
Abs function (C), 211
absolute value functions (C), 214
accessing
arrays (in C via pointers), 151
pointers (in Turbo Pascal), 295, 297
record files (in Fortran 95), 53
Turbo Pascal files, 299-300
ada (Diana intermediate language), 243
advancing I/O record files (Fortran 95), 53-54
Algol 60, 68, 72, 253
Algol W, 253
Algol X, 253
aliases, 47, 244
ampersand (&) (Fortran 95 continued statements), 12
arguments
C functions, 137-138
procedures in Fortran 95, 28-29
arithmetic operators
C, 106-108
Fortran 95, 15
Icon, 360-361
Turbo Pascal, 261
arrays
B, 66
BCPL, 66
C, 70-71, 80-81
accessing via pointers, 151
declaring, 97-98
initializing, 102
integration with pointers, 154-158
nested, 98
operation constraints, 98
references, 141
versus pointers, 155
versus structures, 169
Fortran 95, 31
assignment, 33
computing shape, 32
constructors, 32
declaring, 31
dynamic, 32
indexed parallel assignment, 35-36
masked assignment, 34
operators, 34
returning true values, 36
sections, 33
Turbo Pascal, 269, 271
Asctime function (C), 215
Assembler, implementing in Turbo Pascal, 319
assignment arrays (Fortran 95), 33
assignment operators
C, 108-109
Icon, 332
assignment statements (Fortran 95), 21
Associated function (Fortran 95), 48
Atexit function (C), 211
Atof function (C), 208-209
Atoi function (C), 207-208
Atol function (C), 207-208
attributes (Fortran 95 variables), 19
auto storage classes (C variables), 100
autodecrement operators (C), 116-117
autoincrement operators (C), 116-117

B

B (language)
arrays, 66
compilers, 68
development of, 67-68
pointers, 66
predecessor to C, 63
strings, 66
technological constraints of, 69
threaded code, 67
versus BCPL and C, 64
Backspace statement (Fortran 95), 56
Backus, John, 3
BCPL
arrays, 66
compiler, 65
declarations, 64
legacy construction of, 65
pointers, 66
strings, 66
technical constraints of, 65
transitions to B, 65
versus B and C, 64
Bell Laboratories (development of SNOBOL), 328
between pattern of conception (ILs), 241-244
binary files (Turbo Pascal)
typed, 302-303
untyped, 303
binary operators (C), 107, 110
binary trees, 48
binding Icon expressions (goal-directed evaluation), 343-344
bit operators (Icon), 363
bit-fields (C structures/unions), 170, 172
bit-shifting operators (Turbo Pascal), 291-292
bits (Turbo Pascal), 291
boolean algebra, 292, 294
shifting, 291-292
bitwise boolean algebra operators (Turbo Pascal), 292-294
bitwise operators (C), 113-115
blank characters (Fortran 95), 12
block statements
C, 124, 126
Fortran 95, 22
boolean algebra (using with bits in Turbo Pascal), 292, 294
boolean data types (Turbo Pascal), 269
boolean operators
C, 110
Turbo Pascal, 266-267
Borland International (marketing of Turbo Pascal), 255
bounded expressions (Icon), 341
Brainerd, Walt, 3
Break expression (Icon), 335
break statements (C), 128, 132-134
Bsearch function (C), 210
Btowc function (C), 231
built-in data types (Fortran 95), 14
built-in functions
Fortran 95, 19
Turbo Pascal, 283
built-in procedures
Fortran 95, 30
Turbo Pascal, 283
built-in units (Turbo Pascal), 285

C

C (language)
Algol 68 influence, 72
ancestors of, 64-67
arrays, 70-71, 80-81
accessing via pointers, 151
declaring, 97-98
initializing, 102
integration with pointers, 154-158
nested, 98
operation constraints, 98
references, 141
versus pointers, 155
versus structures, 169
associated technology development, 74
characters, 91
classification, 205
converting to/from uppercase/lowercase, 205
escape sequences, 94
null, 95
command-line arguments, 181
compilers, 74
constants, 93-95
contributors to the development of, 82
criticisms of, 78-81
data types, 71, 90-93
casts, 123
conversions in expressions, 121-123
declaring, 103-104
qualifiers, 101-102
declarations, 71, 79
development of, 70-73, 87
early development of, 62-63
enumerations, 172-173
environment development, 74
expressions, 71, 79, 104
constant expressions, 124
primary expressions, 105-106
short-circuiting, 111
extensions, 77
file inclusion, 73
flow control, 129-135
functionality of, 82
functions, 136
abort, 211
abs, 211
absolute value functions, 214
ANSI syntax, 142
arguments, 137-138
asctime, 215
assert library, 225
atexit, 211
atof, 208-209
atoi, 207-208
atol, 207-208
bsearch, 210
btowc, 231
calling, 140-143
calloc, 206
clearerr, 197
clock, 216
ctime, 215
ctype library, 204-205
declaring, 138-140
defining, 136-138
difftime, 216
div, 211
errno library, 225
exit, 210
exp, 213
external declarations, 143-145
fclose, 186
feof, 196
ferror, 197
fflush, 186
fgetc, 186
fgetpos, 195
fgets, 193
fgetwc, 229
fgetws, 230
float library, 226
fmod, 214
fopen, 185
fprintf, 187-189
fputc, 186
fputs, 193
fputwc, 229
fputws, 230
fread, 193
free, 206
freopen, 185
frexp, 214
fscanf, 190-193
fseek, 195
fsetpos, 195
ftell, 194
fwide, 231
fwprintf, 230
fwrite, 194
fwscanf, 230
getc, 186
getchar, 186, 229
getenv, 210
gets, 193
getwc, 229
gmtime, 215
hyperbolic functions, 214
iso646 library, 226
labs, 211
ldexp, 214
ldiv, 211
library headers, 183-184
limits library, 225
locale library, 220
localeconv, 221-222
localtime, 215
log, 213
log10, 213
longjmp, 220
main, 88
malloc, 158, 160, 206
math library, 213
mblen, 212
mbrlen, 231
mbrtowc, 232
mbsinit, 232
mbsrtowcs, 232
mbstowcs, 213
mbtowc, 212
memchr, 203
memcmp, 203
memcpy, 203
memmove, 203
memset, 204
mktime, 216
modf, 214
nearest-integer functions, 214
perror, 197
pointers, 161-163
pow, 213
printf, 187-189, 198
prototype declarations, 140
putc, 186
putchar, 186
puts, 193
putwc, 229
putwchar, 229
qsort, 209-210
raise, 219
rand, 209
realloc, 206-207
remove, 198
rename, 198
rewind, 195
scanf, 190-193, 197
setbuf, 196
setjmp, 220
setjmp library, 220
setlocale, 221
setvbuf, 196
signal, 219
signal library, 218-219
sprintf, 197
srand, 209
standard library, 182-184
stdarg library, 222
stddef library, 224
stdio library, 184-185
stdlib library, 205
strcat, 200
strchr, 202
strcmp, 201
strcoll, 202
strcopy, 200
strcspn, 203
strerror, 204
strftime, 217-218
string library, 199
strlen, 199
strncat, 201
strncmp, 202
strncpy, 200
strpbrk, 203
strrchr, 202
strspn, 203
strstr, 202
strtod, 208-209
strtok, 204
strtol, 207-208
strtoul, 207-208
strxfrm, 202
swprintf, 230
swscanf, 230
syntax, 136
system, 211
terminating, 135
time, 215
time library, 214
tmpfile, 198
tmpnam, 198
trigonometric functions, 213
ungetc, 194
ungetwc, 230
va_arg, 223
va_end, 223-224
va_start, 223
vfprintf, 198
vfwprintf, 231
vsprintf, 198
vswprintf, 231
vwprintf, 231
wchar library, 227-228
wcrtomb, 232
wcsrtombs, 232
wcstombs, 213
wctob, 231
wctomb, 212
wctype library, 232
wide character functions, 233-234
wide string functions, 228-232
wprintf, 230
wscanf, 230
headers, 175
identifiers, 96-97
linked lists, 173-175
lint, 75
macros, defining, 176
naming schemes, 81
notation for type conversions, 74
operators
& (pointer to), 147
arithmetic operators, 106-108
assignment operators, 108-109
autodecrement operators, 116-117
autoincrement operators, 116-117
bitwise operators, 113-115
comma operators, 117-118
compound assignment operators, 115-116
conditional operators, 117-118
evaluating, 118-120
logical operators, 109-113
modulus, 106
order of precedence, 107, 118-120
relational operators, 109-113
sizeof, 159
stringizing (#) operator, 179-180
origin of, 61
pointers, 70, 145
arithmetic operations and, 150-152
assignments, 147-149
casts, 152
comparing, 151
conversion within, 152
copying, 148
declaring, 146-147
integration with arrays, 154-158
low-level addressing, 163-165
memory allocation capabilities, 158-160
null, 165
pointing to functions, 161-163
to structures, 169
variable values, 149
variables, 153
versus arrays, 155
portability, 73-77, 82
preprocessor directives, 89, 175
#define, 178
#else, 179
#error, 181
#if, 179
#include, 176
#pragma, 181
preprocessor macros, defining, 177-178
programs
exit status, 182
Hello World, 87
namespace, 96
printing Fibonacci numbers, 88-89
scope, 96, 98
recursion, 142
reliability of, 82
runtime environment, 181
source code (conditional compilation), 178-179
source files, resetting, 175, 180
standardization, 61, 75-77
statements, 124
block statements, 126
blocks, 124
break, 128, 132-134
continue, 132-134
do-while, 132
expression statements, 124-125
for, 130-131
goto, 134-135
if, 125-128
if-else, 125-128
jumping between, 134-135
labels, 134-135
return, 135
switch, 128-129
while, 129-130
storage mechanisms, 81
strings, 95
structures, 70, 166
bit-fields, 170, 172
declaring, 166
linked, 173-175
member access, 168-169
pointers, 169
syntax, 167
variables, 168
versus arrays, 169
successors of, 78
syntax, 89-90
trees, 173-175
unions, 169-170
bit-fields, 170, 172
declaring, 169
recalling data storage, 170
UNIX association, 61
variables
declaring, 95-96, 167
duration of, 98
external declarations, 99, 143-145
initializing, 102-103
storage classes, 98-101
versus BCPL and B, 64
wide characters, 93, 95
X3J11 standardization committee, 76
C*, 78
C++, 78
translating to C, 238
callback procedures (Icon), 405-406
calling functions (in C), 140-143
Calloc function (C), 206
Canaday, Rudd, 63
case control structure (Icon), 336
Case statement
Fortran 95, 23
Turbo Pascal, 263-264
casts (C data types), 123
Cfront, 238
Char data type (C), 91
characters, 93
C, 91
classification, 205
converting to/from uppercase/lowercase, 205
null, 95
data types
Fortran 95, 16
Turbo Pascal, 268
escape sequences (C), 94
Fortran 95
blank, 12
concatenation, 38
constants, 38
dummy arguments, 37
parameters, 37
special, 13-14
string length, 37
substrings, 38
Chr() function (Turbo Pascal), 286
Clearerr function (C), 197
Clock function (C), 216
Close statement (Fortran 95), 55
closing record files (Fortran 95), 55
Clreol procedure (Turbo Pascal), 307
Clrscr procedure (Turbo Pascal), 307
co-expressions (Icon), 363-364
COBOL, 253
color (Icon windows), 368
COMIT, 328
comma operators (C), 117-118
command-line arguments
C programs, 181
Icon programs, 374-375
comments
Fortran 95, 13
Icon, 333
comparing
pointers in C, 151
strings in Icon, 347-348
compilers
B, 68
BCPL, 65
C, 74
functionality of, 237
Icon, 373
Pascal, 256
porting between platforms, 247
re-targeting, 245
Turbo Pascal
directives, 268
using, 258-259
Complex data type (Fortran 95), 15
compound assignment operators (C), 115-116
concatenation
characters (Fortran 95), 38
strings
C, 95
Icon, 345-346
Turbo Pascal, 261
concurrent C, 78
conditional operators (C), 117-118
conditional statements (Turbo Pascal), 262
conjunction (Icon expressions), 343-344
const qualifiers (C data types), 101
constants
C, 93-95, 124
characters (Fortran 95), 38
Icon (mathematical constants), 362
Turbo Pascal, defining, 273-274
constructors (Fortran 95)
arrays in, 32
structures, 40
constructs (Pascal), 257
continue statements
C, 132-134
Fortran 95, 12
control backtracking (Icon), 344
control structures
Icon, 332, 335-336
alternation, 336
case, 336
limitation, 343
not, 335
repeated alternation, 343
terminating, 335
converting data types (C expressions), 121-123
Copy() function (Turbo Pascal), 288
copying
pointers (C), 148
strings (Turbo Pascal), 288
Count function (Fortran 95), 37
Cset data types (Icon), 334, 344-345
Ctime function (C), 215
Ctype function library (C), 205
Cycle statement (Fortran 95), 25
Cytron, Ron, 237

D

data backtracking (Icon), 344
data records (Fortran 95), 51
data types
C, 71, 90-93
casts, 123
conversions in expressions, 121-123
declaring, 103-104
qualifiers, 101-102
Fortran 95
arithmetic operators, 15
character, 16
complex, 15
declaring for trees, 49-50
derived, 39
extending, 40
integer, 15
kind parameters, 17
logical, 16
mixed-mode expressions, 16
real constant, 15
relational operators, 16
Icon, 334-335, 345
Turbo Pascal, 267
arrays, 269, 271
boolean data types, 269
character data types, 268
converting to/from ASCII equivalents, 286
converting to/from numerics/strings, 286
defining, 273-274
defining between units, 322
enumerated data types, 276-277
numeric data types, 267-268
records, 274-275
sets, 275-276
typecasting, 285-286
debuggers
Turbo Pascal, 258
Icon, 376-381
DEC PDP[apple]7, 62
declaring, 71, 79
arrays
in C, 97-98
in Fortran 95, 31
data types
for Fortran 95 trees, 49-50
in C, 103-104
functions (in C), 138-140
parameters (in Fortran 95), 18
pointers
in C, 146-147
in Fortran 95, 46-47
structures
in C, 166
in Fortran 95, 39
unions (in C), 169
variables (in C), 95-96
Decline procedure (Turbo Pascal), 307
defining
constants in Turbo Pascal, 273-274
data types
between Turbo Pascal units, 322
in Turbo Pascal, 273-274
functions in C, 136-138
macros in C, 176-178
Delphi, 256
derived data types (Fortran 95), 39
diagnostic output (Icon), 376-377
dialog boxes (Icon), 371-372
Difftime function (C), 216
Dispose() procedure (Turbo Pascal), 296
Div function
C, 211
Turbo Pascal, 261
Do statement (Fortran 95), 24
Do-while statements (C), 132
DOS commands (Turbo Pascal capabilities), 311-317
drawing functions (Icon), 366-367
Dvi, 239
dynamic arrays (Fortran 95), 32
dynamic memory allocation
C, 158-160
Turbo Pascal, 294-299

E

Eiffel, 78
elemental procedures (Fortran 95), 30
Elsewhere statement (Fortran 95), 34
End do statement (Fortran 95), 24
End program statement (Fortran 95), 14
endfile records (Fortran 95), 51-52
Endfile statement (Fortran 95), 56
enumerated data types (Turbo Pascal), 276-277
enumerations (C), 172-173
environment variables (Icon), 375
errors (Icon), 377
linking errors, 377
preprocessor errors, 377
runtime errors, 378
syntax errors, 377
evaluating
exponents in Turbo Pascal, 321
expressions in Icon, 333
operators in C, 118-120
events (Icon windows), 369
Exclamation mark (!) (Fortran 95 comments), 13
Exit function (C), 210
Exit statement (Fortran 95), 25
Exit status (C programs), 182
exiting loops (Fortran 95), 25
Exitproc procedure (Turbo Pascal), 298-299
Exp function (C), 213
Exponential form (real constant data types), 15
exponents, evaluating in Turbo Pascal, 321
expressions
C, 71, 79, 104
constant expressions, 124
primary expressions, 105-106
short-circuiting, 111
statements, 124-125
Fortran 95, 20
order of precedence, 20
primary components, 20
Icon, 332
analyzing, 382-386
bounded, 341
break, 335
co-expressions, 363-364
conjunction, 343-344
creating, 386-388
evaluating, 333
matching, 391, 393
next, 335
extending Fortran 95, 40-42, 44-45
Extension pattern of conception (ILs), 240-241
external declarations (C functions/variables), 143-145
external storage classes (C variables), 100
external record files (Fortran 95), 52

F

F (Fortran language subset), 11
FAQs (Turbo Pascal), 320-323
Fclose function (C), 186
Feof function (C), 196
Ferror function (C), 197
Fflush function (C), 186
Fgetc function (C), 186
Fgetpos function (C), 195
Fgets function (C), 193
Fgetwc function (C), 229
Fgetws function (C), 230
Fibonacci numbers, 88-89, 396
File inclusion (C), 73
files, 52
Turbo Pascal, 299
accessing, 299-300
object files, 319
overlay files, 317-319
printer as file, 304
text files, 300-301
typed binary files, 302-303
untyped binary files, 303
Float function library (C), 226
floating-point data types (C), 92
flow control
C, 129-135
Fortran 95, 21-24
Icon, 333-334
Turbo Pascal, 262-267
Fmod function (C), 214
Fopen function (C), 185
for statements
C, 130-131
Turbo Pascal, 264
Forall statement (Fortran 95), 35-36
formatted records (Fortran 95), 51, 56
Fortran, 3, 5, 253
development of, 3-4
F, 11
Fortran 2000, 10
Fortran 66, 4
Fortran 77, 4
Fortran 90, 5
Fortran II, 4
I/O, 50
standardization, 4-6
Fortran 95, 5
arrays, 31
assignment, 33
computing shape, 32
constructors, 32
declaring, 31
dynamic, 32
indexed parallel assignment, 35-36
masked assignment, 34
operators, 34
returning true values, 36
sections, 33
characters
blank, 12
concatenation, 38
constants, 38
dummy arguments, 37
parameters, 37
special, 13-14
string length, 37
substrings, 38
comments, 13
compatibility with Fortran 90, 7
data types
arithmetic operators, 15
character, 16
complex, 15
declaring for trees, 49-50
derived, 39
extending, 40
integer, 15
logical, 16
mixed-mode expressions, 16
real constant, 15
relational operators, 16
expressions, 20
extending, 40-45
extensibility, 7
flow control, 21-24
functions, 28
arguments, 28-29
associated, 48
built-in, 19
count, 37
extending, 44-45
null, 47
shape, 32
HFP extensions, 10-11
legacy code, 7
loops
assigning successive variable values, 25
conditional execution, 25
do, 24
exiting, 25
repeating, 25
modules, 7, 26
affecting objects in, 28
using, 27-28
writing, 26-27
operators
arithmetic, 15
order of precedence, 20
relational, 16
parameters
declaring, 18
kind, 17
named constants, 17
naming rules, 18
pointers, 45
aliases, 47
declaring variables as, 46-47
determining association of, 48
initializing, 47
nullifying, 47
states, 46
procedures, 28
arguments, 28-29
built-in, 30
elemental, 30
programs
example, 12
form, 12-14
record files, 52
accessing, 53
advancing I/O, 53-54
closing, 55
control information list, 55
data transfer, 54
external, 52
format specification, 54
I/O list, 55
internal, 52
nonadvancing I/O, 53-54
opening, 55
positioning, 56
querying, 55
records, 51
endfile, 52
formatted, 51, 56
list-directed formatting, 56
unformatted, 51
standards, 7-8
permissiveness of, 9-10
portability, 9
processor conformance to, 8-9
program conformance to, 8
statements
assignment, 21
backspace, 56
blocks, 22
case, 23
close, 55
continued, 12
cycle, 25
do, 24
elsewhere, 34
end do, 24
end program, 14
endfile, 56
exit, 25
forall, 35-36
I/O statements, 51
if, 22-23
inquire, 55
keywords, 12
open, 55
print, 54
program, 14
read, 54
rewind, 56
select case, 23
type, 17
use, 27
where, 34
write, 54
strengths of, 6-7
structures, 38
constructors, 40
declaring, 39
referencing components, 39
subroutines, 28
arguments, 28-29
trees, 48
declaring data types for, 49-50
sorting numbers with, 48
variables, 18
attributes, 19
declaring as pointers, 46-47
forward declarations (Turbo Pascal functions/procedures), 281
Fprintf function (C), 187-189
Fputc function (C), 186
Fputs function (C), 193
Fputwc function (C), 229
Fputws function (C), 230
Fread function (C), 193
Free function (C), 206
Freopen function (C), 185
Frexp function (C), 214
Fscanf function (C), 190-193
Fseek function (C), 195
Fsetpos function (C), 195
Ftell function (C), 194
functions
C, 136
abort, 211
abs, 211
absolute value functions, 214
ANSI syntax, 142
arguments, 137-138
asctime, 215
assert library, 225
atexit, 211
atof, 208-209
atoi, 207-208
atol, 207-208
bsearch, 210
btowc, 231
calling, 140-143
calloc, 206
clearerr, 197
clock, 216
ctime, 215
ctype library, 204-205
declaring, 138-140
defining, 136-138
difftime, 216
div, 211
errno library, 225
exit, 210
exp, 213
external declarations, 143-145
fclose, 186
feof, 196
ferror, 197
fflush, 186
fgetc, 186
fgetpos, 195
fgets, 193
fgetwc, 229
fgetws, 230
float library, 226
fmod, 214
fopen, 185
fprintf, 187-189
fputc, 186
fputs, 193
fputwc, 229
fputws, 230
fread, 193
free, 206
freopen, 185
frexp, 214
fscanf, 190-193
fseek, 195
fsetpos, 195
ftell, 194
fwide, 231
fwprintf, 230
fwrite, 194
fwscanf, 230
getc, 186
getchar, 186, 229
getenv, 210
gets, 193
getwc, 229
gmtime, 215
hyperbolic functions, 214
iso646 library, 226
labs, 211
ldexp, 214
ldiv, 211
library headers, 183-184
limits library, 225
locale library, 220
localeconv, 221-222
localtime, 215
log, 213
log10, 213
longjmp, 220
main, 88
malloc, 158, 160, 206
math library, 213
mblen, 212
mbrlen, 231
mbrtowc, 232
mbsinit, 232
mbsrtowcs, 232
mbstowcs, 213
mbtowc, 212
memchr, 203
memcmp, 203
memcpy, 203
memmove, 203
memset, 204
mktime, 216
modf, 214
nearest-integer functions, 214
perror, 197
pointers, 161-163
pow, 213
printf, 187-189, 198
prototype declarations, 140
putc, 186
putchar, 186
puts, 193
putwc, 229
putwchar, 229
qsort, 209-210
raise, 219
rand, 209
realloc, 206-207
remove, 198
rename, 198
rewind, 195
scanf, 190-193, 197
setbuf, 196
setjmp, 220
setjmp library, 220
setlocale, 221
setvbuf, 196
signal, 219
signal library, 218-219
sprintf, 197
srand, 209
standard library, 182-184
stdarg library, 222
stddef library, 224
stdio library, 184-185
stdlib library, 205
strcat, 200
strchr, 202
strcmp, 201
strcoll, 202
strcopy, 200
strcspn, 203
strerror, 204
strftime, 217-218
string library, 199
strlen, 199
strncat, 201
strncmp, 202
strncpy, 200
strpbrk, 203
strrchr, 202
strspn, 203
strstr, 202
strtod, 208-209
strtok, 204
strtol, 207-208
strtoul, 207-208
strxfrm, 202
swprintf, 230
swscanf, 230
syntax, 136
system, 211
terminating, 135
time, 215
time library, 214
tmpfile, 198
tmpnam, 198
trigonometric functions, 213
ungetc, 194
ungetwc, 230
va_arg, 223
va_end, 223-224
va_start, 223
vfprintf, 198
vfwprintf, 231
vsprintf, 198
vswprintf, 231
vwprintf, 231
wchar library, 227-228
wcrtomb, 232
wcsrtombs, 232
wcstombs, 213
wctob, 231
wctomb, 212
wctype library, 232
wide character functions, 233-234
wide string functions, 228-232
wprintf, 230
wscanf, 230
Fortran 95, 28
arguments, 28-29
associated, 48
built-in, 19
count, 37
extending, 44-45
null, 47
shape, 32
Icon, 332
bit pattern, 363
drawing, 366-367
matching, 349
string-analysis, 348
trigonometric, 362
type(), 334
Turbo Pascal, 279-280
built-in, 283
chr(), 286
copy(), 288
DIV, 261
DOS equivalents, 315-317
forward declarations, 281
length(), 287
mathematical functions, 289
memory addresses, 297-298
MOD, 261
ord(), 286
pos(), 288
pseudo-random number generator, 290-291
readkey, 304-305
recursion, 280-281
str(), 286
upcase(), 287
val(), 286
Fwide function (C), 231
Fwprintf function (C), 230
Fwrite function (C), 194
Fwscanf function (C), 230

G

generators (Icon), 331, 340
goal-directed evaluation, 341-342
iteration, 340-341
recognizing, 406
recursive generators, 389-390
resuming suspended generators, 344
Getc function (C), 186
Getchar function (C), 186, 229
Getenv function (C), 210
Gets function (C), 193
Getwc function (C), 229
global variables (Icon), 338
Gmtime function (C), 215
goal-directed evaluation (Icon generators), 341-342
goto statements (C), 134-135
Gotoxy() procedure (Turbo Pascal), 308
Griswold, Ralph E., 327
Grotzinger, Glenn, 253

H-I

headers (C), 175
Hello World program (C), 87
HFP extensions (Fortran 95), 10-11
Highvideo procedure (Turbo Pascal), 308
Hyperbolic functions (C), 214
I/O
Fortran, 50
Icon, 338-339
redirection, 374
Icon, 327
comments, 333
compiler, 373
constants (mathematical), 362
control backtracking, 344
control structures, 332, 335-336
alternation, 336
case, 336
limitation, 342
not, 335
repeated alternation, 343
terminating, 335
core modules, 414
data backtracking, 344
data types, 334-335
cset data types, 345
documentation on, 413-414
errors, 377
linking errors, 377
preprocessor errors, 377
runtime errors, 378
syntax errors, 377
expressions, 332
analyzing, 381-386
bounded, 341
break, 335
co-expressions, 363
conjunction, 343
creating, 386-388
evaluating, 333
matching, 391, 393
next, 335
flow control, 333-334
functions, 332
drawing functions, 365-366
matching functions, 349
string-analysis functions, 348
trigonometric functions, 362
type(), 334
generators, 331, 340
goal-directed evaluation, 341
iteration, 340
recognizing, 406
recursive generators, 389-391
resuming suspended generators, 344
I/O, 338-339, 374
Icon Project, 420
implementations, 413
interfaces, 400-401
integrating with programs, 404
Visual Interface Builder, 401, 403
keywords, & (standard I/O), 338
lists, 352-353
adding/removing values, 354
as queues, 354
as stacks, 354
sorting, 357
using
literals
integers, 360
real numbers, 360
memory storage, 339
newsgroups, 418
online resources, 413
operators, 332
arithmetic, 360
assignment, 332
bit, 362
numerical comparison, 361
numerical computation, 361
string comparision, 347
origins of, 327-331
preprocessing, 339
procedures, 332, 336-337
adding memory to, 398
as generators, 342
callback procedures, 405
index for, 416-417
matching, 394-395
redundant computation, 396-397
tracing, 380
programs
command-line arguments, 374
debugging, 375-378, 380-381
diagnostic output, 376
index for, 415
library modules, 375, 414-418
recognizer generator, 406-407
running, 373
source files, 373
structure, 332
structure hierarchy, 407
word counting, 331
writing, 408-409, 411-412
pseudo-random numbers, 362
records, 352, 357
release of, 331
sets, 352, 354, 357
strings, 334, 344-345
analyzing, 348
character positions, 346
comparing, 347-348
concatenation, 345-346
fixed length construction, 345
pattern matching, 391, 394-396
processing, 344
scanning, 348-351
substrings, 346-347
structures, 352
operations, 356
pointers, 357, 359
serial numbers, 356
sorting, 356-357
syntax, 331
tables, 352, 355, 357
variables
assigning values to, 332
environment variables, 375
global, 338
local, 338
null values, 335
scope, 337-338
static, 338
termination dumps, 379
windows, 364
color, 368
dialog boxes, 371
events, 369
image files, loading, 368-369
user interaction, 369-370, 372
visual interfaces, 372
writing to, 367
identifiers (C), 96-97
If control structure (Icon), 335
If statement
C, 125-128
Fortran 95, 22-23
Turbo Pascal, 262
If-else statements
C, 125-128
Turbo Pascal, 262
ILs
advantages of, 241-243
between pattern of conception, 241-244
case study, 245-249
Cfront, 238
common problems with, 240-241
design principles, 244-245
Diana, 243
extension pattern of conception, 240-241
human legibility, 245
IL-to-source token ratio, 245
Java VM, 243, 245, 247-249
overhead with, 239-240
PCode, 243, 245-246
porting compilers between platforms, 247
representation, 245
role of, 244
semantics of, 244
switch mechanisms, 249
TeX, 239
utility of, 249
image files (loading in Icon windows), 369
Imagine1, Inc. (Fortran), 11
include files (Turbo Pascal), 285
indexed parallel assignment (arrays in Fortran 95), 35-36
initializing
arrays in C, 102
pointers in Fortran 95, 47
variables in C, 102-103
inline machine code, implementing in Turbo Pascal, 319
Inquire statement (Fortran 95), 55
Insline procedure (Turbo Pascal), 307
Int data types (C), 90
INTDATA.TXT file (Turbo Pascal), 299
Integer data type (Fortran 95), 15
integer literals (Icon), 360
interfaces
Icon, 400-401
integrating with programs, 404
Visual Interface Builder, 401, 403
windows, 372-373
internal record files (Fortran 95), 52
iteration (Icon generators), 340-341

J-L

J3 Fortran standards committee, 4
Java VM, 243, 245, 247-249
Johnson, Steve, 68
keywords
Fortran 95 statements, 12
Icon (&), 339
kind parameters (Fortran 95), 17
labels (C statements), 134-135
Labs function (C), 211
LaTeX, translating to print, 238-239
Ldexp function (C), 214
Ldiv function (C), 211
Length() function (Turbo Pascal), 287
library modules (Icon programs), 375
limitation control structure (Icon), 343
linked lists (C), 173-175
linked structures (C), 173-175
linking errors (Icon), 378
Lint (C), 79, 75
list-directed formatting (Fortran 95 records), 56
lists, Icon, 352-354
adding/removing values, 354
sorting, 357
using as queues, 354
using as stacks, 354
literals (Icon)
integers, 360
real numbers, 360
local variables (Icon), 338
Localeconv function (C), 221-222
Localtime function (C), 215
Log function (C), 213
Log10 function (C), 213
Logical data type (Fortran 95), 16
Logical operators (C), 109-113
London, Tom, 75
long data types (C), 91
Longjmp function (C), 220
loops
C
breaking out of, 132-134
continuing after breaking, 132-134
do-while, 132
for, 130-131
while, 129-130
Fortran 95
assigning successive variable values, 25
conditional execution, 25
do, 24
exiting, 25
repeating, 25
Icon, 335-336
Turbo Pascal
for, 264
repeat, 265-266
while, 264
low-level memory addressing (C), 163-165
Lowvideo procedure (Turbo Pascal), 308

M

macros, C, defining, 176
Main function (C), 88
Malloc function (C), 158, 160, 206
Masked assignment arrays (Fortran 95), 34
matching expressions (Icon), 391, 393-394
matching functions (Icon), 349
matching procedures (Icon), 394-396
mathematical constants (Icon), 362
mathematical functions (Turbo Pascal), 289
mathematical procedures (Turbo Pascal), 289
Mblen function (C), 212
Mbrlen function (C), 231
Mbrtowc function (C), 232
Mbsinit function (C), 232
Mbsrtowcs function (C), 232
Mbstowcs function (C), 213
Mbtowc function (C), 212
Memchr function (C), 203
Memcmp function (C), 203
Memcpy function (C), 203
Memmove function (C), 203
memory
dynamic allocation
in C, 158-160
in Turbo Pascal, 294-299
Icon procedures, adding, 398, 400
low-level addressing in C, 163-165
Memset function (C), 204
mixed-mode expressions (Fortran 95), 16
Mktime function (C), 216
MOD function (Turbo Pascal), 261
Modf function (C), 214
Modula-3, 78
modular programming (Icon), 375, 415
modules (Fortran 95), 7, 26
affecting object in, 28
using, 27-28
writing, 26-27
modulus operator (C), 106
Morris, Bob, 63
Multics project, 62

N

named constants (Fortran 95 parameters), 17
namespace (C programs), 96
naming parameters (Fortran 95), 18
naming schemes (C), 81
NB (C predecessor), 70
NCEG (C extensions group), 77
nearest-integer functions (C), 214
nested arrays (C), 98
nesting if statements in C, 126
newsgroups (Icon), 420
Next expression (Icon), 335
nonadvancing I/O record files (Fortran 95), 53-54
Normvideo procedure (Turbo Pascal), 308
not control structure (Icon), 335
null character (C), 95
Null function (Fortran 95), 47
null pointers (C), 165
null values (Icon variables), 335
null-terminated strings (Turbo Pascal), 273
numeric data types (Turbo Pascal), 267-268
numerical comparison operators (Icon), 361
numerical computation operators (Icon), 362

O

object files (Turbo Pascal), 319
Objective C, 78
online resources
Icon, 413
Pascal, 257
Open statement (Fortran 95), 55
opening record files (Fortran 95), 55
operators
C
arithmetic, 106-108
assignment, 108-109
autodecrement, 116-117
autoincrement, 116-117
bitwise, 113-115
comma, 117-118
compound assignment, 115-116
conditional, 117-118
evaluating, 118-120
logical, 109-113
modulus, 106
order of precedence, 107, 118-120
relational, 109-113
sizeof, 159
stringizing (#), 179-180
Fortran 95
applying to arrays, 34
arithmetic, 15
order of precedence, 20
relational, 16
Icon, 332
arithmetic, 360-361
assignment, 332
bit, 363
numerical comparison, 361
numerical computation, 362
string comparision, 348
Turbo Pascal
arithmetic, 261
bit-shifting, 291-292
bitwise boolean algebra, 292-294
boolean, 266-267
set, 276
Ord() function (Turbo Pascal), 286
OS6 operating system, 63
overlay files (Turbo Pascal), 317-319

P

parameters (Fortran 95)
characters, 37
declaring, 18
kind, 17
named constants, 17
naming rules, 18
Pascal, 255
compilers, 256
constructs, 257
current status of, 256-257
descendant languages of, 256
development of, 253
growth of, 254-255
influence of other languages on, 254
online resources, 257
p-kit, 254
Pcode intermediate language, 243
portability, 254
prominence of, 255
standardization, 255
Pascal-S, 254
pattern matching strings (Icon), 391, 393-396
Pcode, 243, 245-246
PDP-7, 62
Perror function (C), 197
pixels, 364
PL/I, 62
pointers
B, 66
BCPL, 66
C, 70, 145
arithmetic operations and, 150-152
assignments, 147-149
casts, 152
comparing, 151
conversion within, 152
copying, 148
declaring, 146-147
integration with arrays, 154-158
low-level addressing, 163-165
memory allocation capabilities, 158-160
null, 165
pointing to functions, 161-163
to structures, 169
variables, 149, 153
versus arrays, 155
Fortran 95, 45
aliases, 47
declaring variables as, 46-47
determining association of, 48
initializing, 47
nullifying, 47
states, 46
Icon structures, 357, 359-360
Turbo Pascal, 295
accessing, 295, 297
errors, 323
functionality of, 295
using, 295
portability
C, 73-75
compilers between platforms, 247
Fortran 95, 9
Pascal, 254
Pos() function (Turbo Pascal), 288
positional forms (real constant data types), 15
positioning record files (Fortran 95), 56
Pow function (C), 213
precedence (Fortran 95 expressions), 20
preprocessors
C, 73, 177-178
directives (C), 89, 175
#define, 178
#else, 179
#error, 181
#if, 179
#include, 176
#pragma, 181
Icon, 339, 377
primaries (Fortran 95 expression component), 20
primary expressions (C), 105-106
Print statement (Fortran 95), 54
printers as files in Turbo Pascal, 304
Printf function (C), 187-189, 198
procedures
Fortran 95, 28
arguments, 28-29
built-in, 30
elemental, 30
Icon, 332, 336-337
adding memory to, 398
as generators, 342
callback procedures, 405
index for, 417-418
matching, 394-395
redundant computation, 396-397
tracing, 380
Turbo Pascal, 277-278
built-in, 283
clreol, 307
clrscr, 307
delline, 307
dispose(), 296
DOS equivalents, 315-317
exitproc, 298-299
forward declarations, 281
gotoxy(), 308
highvideo, 308
insline, 307
lowvideo, 308
mathematical procedures, 289
memory addresses, 297-298
normvideo, 308
read, 259-260
readln, 259-260
software interrupt procedures, 320
textbackground(), 308
textcolor(), 308
textmode(), 307
window(), 307
write, 259-260
writeln, 259-260
processing Icon strings, 344
Program reserved word (Turbo Pascal), 259
Program statement(Fortran 95), 14
programs
C
command-line arguments, 181
exit status, 182
Hello World, 87
namespace, 96
printing Fibonacci numbers, 88-89
scope, 96, 98
Fortran 95
example, 12
form, 12-14
Icon
command-line arguments, 374-375
debugging, 376-378, 380-381
diagnostic output, 376-377
index for, 416
library modules, 375
recognizer generator, 406-407
running, 373-374
source files, 373
structure, 332, 407
word counting, 331
writing, 408-412
Turbo Pascal
format, 259
reading/writing to screen, 259-260
pseudo-random numbers, 290-291, 362
Putc function (C), 186
Putchar function (C), 186
Puts function (C), 193
Putwc function (C), 229
Putwchar function (C), 229

Q-R

Qsort function (C), 209-210
qualifiers (C data types), 101-102
query processors, 237
querying record files (Fortran 95), 55
Raise function (C), 219
Rand function (C), 209
re-targeting compilers, 245
Read procedure (Turbo Pascal), 259-260
Read statement (Fortran 95), 54
Readkey function (Turbo Pascal), 304-305
Readln procedure (Turbo Pascal), 259-260
Real constant data type (Fortran 95), 15
real number literals (Icon), 360
Realloc function (C), 206-207
records
Fortran 95, 51-52
accessing, 53
advancing I/O, 53-54
closing, 55
control information list, 55
data transfer, 54
endfile, 52
external, 52
formatted, 51, 54, 56
I/O list, 55
internal, 52
list-directed formatting, 56
nonadvancing I/O, 53-54
opening, 55
positioning, 56
querying, 55
unformatted, 51
Icon, 352-353, 357
Turbo Pascal, 274-275
recursion
C, 142
Icon, 389-391
Turbo Pascal, 280-281
redirecting I/O in Icon, 374
references
C arrays, 141
Fortran 95 structure components, 39
register storage classes (C variables), 100
Reiser, John, 75
relational operators
C, 109-113
Fortran 95, 16
Remove function (C), 198
Rename function (C), 198
Repeat control structure (Icon), 335
Repeat statement (Turbo Pascal), 265-266
Repeated alternation control structure (Icon), 343
repeating loops (Fortran 95), 25
reserved words (Turbo Pascal), 259
resetting C source files, 180
return statements (C), 135
Rewind function (C), 195
Rewind statement (Fortran 95), 56
Richards, Martin, 63
Ritchie, Dennis, 61
running Icon programs, 373-374
runtime errors (Icon), 378

S

Scanf function (C), 190-193, 197
scanning strings (Icon), 348-352
scope
C programs, 96, 98
Icon variables, 337-338
sections (Fortran 95 arrays), 33
Select case statement (Fortran 95), 23
semicolon (;) (Turbo Pascal statement separator), 259
serial numbers (Icon structures), 356
set operators (Turbo Pascal), 276
Setbuf function (C), 196
Setjmp function (C), 220
Setjmp function library (C), 220
Setlocale function (C), 221
sets
Icon, 352, 354-355, 357
Turbo Pascal data types, 275-276
Setvbuf function (C), 196
shape arrays (Fortran 95), 32
Shape function (Fortran 95), 32
shifting bits (Turbo Pascal), 291-292
short data types (C), 91
short-circuiting
C expressions, 111
Turbo Pascal evaluations, 267
Signal function (C), 219
Signed data type (C), 91
Sizeof operator (C), 159
SNOBOL, 328-330
Snyder, Alan, 73
software interrupt procedures, calling in Turbo Pascal, 320
sorting Icon structures, 357
source code (C conditional compilation), 178-179
source file includes (C), 175
source files
C, resetting, 180
Icon programs, 373
special characters (Fortran 95), 13-14
Sprintf function (C), 197
Srand function (C), 209
standards
C, 61, 75-77
Fortran, 4-6
Fortran 95, 7-8
permissiveness of, 9-10
portability, 9
processor conformance to, 8-9
program conformance to, 8
Pascal, 255
statements
C, 124
block, 124-126
break, 128, 132-134
continue, 132-134
do-while, 132
expression statements, 124-125
for, 130-131
goto, 134-135
if, 125-128
if-else, 125-128
jumping between, 134-135
labels, 134-135
return, 135
switch, 128-129
while, 129-130
Fortran 95
assignment, 21
blocks, 22
case, 23
continued, 12
cycle, 25
do, 24
elsewhere, 34
end do, 24
end program, 14
exit, 25
forall, 35-36
I/O statements, 51
if, 22-23
keywords, 12
print, 54
program, 14
read, 54
select case, 23
type, 17
use, 27
where, 34
write, 54
Turbo Pascal
case, 263-264
conditional statements, 262
for, 264
if, 262
if-else, 262
repeat, 265-266
while, 264
static storage classes (C variables), 99
static variables (Icon), 338
statments (Fortran 95)
backspace, 56
close, 55
endfile, 56
inquire, 55
open, 55
rewind, 56
Stdio function library (C), 184-185
storage classes (C variables), 98-101
storage mechanisms (C), 81
Str() function (Turbo Pascal), 286
Strcat function (C), 200
Strchr function (C), 202
Strcmp function (C), 201
Strcoll function (C), 202
Strcopy function (C), 200
Strcspn function (C), 203
Strerror function (C), 204
Strftime function (C), 217-218
string comparision operators (Icon), 348
string-analysis functions (Icon), 348
strings
B, 66
BCPL, 66
C, digits in, 95
Icon, 334, 344-345
analyzing, 348
character positions, 346-347
comparing, 347-348
concatenation, 345-346
fixed length construction, 346
pattern matching, 391, 394-396
processing, 344
scanning, 348-352
substrings, 346-347
Turbo Pascal, 272-273
concatenation, 261
copying, 288
determining length of, 287
determining starting positions, 288
Strlen function (C), 199
Strncat function (C), 201
Strncmp function (C), 202
Strncpy function (C), 200
Strpbrk function (C), 203
Strrchr function (C), 202
Strspn function (C), 203
Strstr function (C), 202
Strtod function (C), 208-209
Strtok functio (C), 204
Strtol function (C), 207-208
Strtoul function (C), 207-208
structures
C, 70, 166
bit-fields, 170, 172
declaring, 166
linked, 173-175
member access, 168-169
pointers, 169
syntax, 167
variables, 168
versus arrays, 169
Fortran 95, 38
constructors, 40
declaring, 39
referencing components, 39
Icon, 352
operations, 356
pointers, 357, 359-360
serial numbers, 356
sorting, 357
Strxfrm function (C), 202
subroutines (Fortran 95), 28
arguments, 28-29
substrings
characters in Fortran 95, 38
Icon, 346-347
Summit, Steve, 87
switch mechanisms (ILS), 249
Switch statements (C), 128-129
Swprintf function (C), 230
Swscanf function (C), 230
syntax
C, 89-90
declaring, 71
functions, 136
Icon, 331, 377
System function (C), 211

T

tables (Icon), 352, 355-357
tags (C structures), 167
terminating functions (C), 135
termination dumps (Icon variables), 379-380
TESTTEXT.EXE file (Turbo Pascal), 299
TeX, 239
text, 300-301
manipulating in Turbo Pascal, 308, 310
processors, 237
Textbackground() procedure (Turbo Pascal), 308
Textcolor() procedure (Turbo Pascal), 308
Textmode() procedure (Turbo Pascal), 307
Theorem provers, 237
Thompson, Ken, 62
threaded code (B), 67
Time function (C), 215
TMG, 63
Tmpfile function (C), 198
Tmpnam function (C), 198
tracing (Icon procedures), 380-381
translating
C++ to C, 238
LaTeX to print, 238-239
transmogrifiers, 63
trees
C, 173-175
Fortran 95, 48
declaring data types for, 49-50
sorting numbers with, 48
trigonometric functions
C, 213
Icon, 362
Turbo Pascal, 255
activating/deactivating PC speakers, 305-306
active windows, manipulating, 306-308
advanced programming options, 317
Assembler compatibility, 319
bits, 291
boolean algebra, 292, 294
shifting, 291-292
code, copying to memory/disk, 317-319
compile menu options, 258
compiler directives, 268
constants, defining, 273-274
CRT unit, 304
data types, 267
arrays, 269, 271
boolean data types, 269
character data types, 268
converting to/from ASCII equivalents, 286
converting to/from numerics/strings, 286
defining, 273-274
defining between units, 322
enumerated data types, 276-277
numeric data types, 267-268
records, 274-275
sets, 275-276
typecasting, 285-286
debugger, 258
DOS command capabilities, 311-317
dynamic memory allocation, 294-295, 297-299
exponents, evaluating, 321
extended keys, setting, 304-305
FAQs, 320-323
file menu options, 258
files, 299
accessing, 299-300
object files, 319
overlay files, 317-319
printer as file, 304
text files, 300-301
typed binary files, 302-303
untyped binary files, 303
flow control, 262-267
functions, 279-280
built-in, 283
chr(), 286
copy(), 288
DIV, 261
DOS equivalents, 315-317
forward declarations, 281
length(), 287
mathematical functions, 289
memory addresses, 297-298
MOD, 261
ord(), 286
pos(), 288
pseudo-random number generator, 290-291
readkey, 304-305
str(), 286
upcase(), 287
val(), 286
include files, 285
inline machine code, implementing, 319
key combination options, 258
mathematical result errors, 320
modular aspects of, 283, 285
operators
arithmetic operators, 261
bit-shifting operators, 291-292
bitwise boolean algebra operators, 292-294
boolean operators, 266-267
set operators, 276
pointers, 295
accessing, 295, 297
errors, 323
functionality of, 295
using, 295
procedures, 277-278
built-in, 283
clreol, 307
clrscr, 307
delline, 307
dispose(), 296
DOS equivalents, 315-317
exitproc, 298-299
forward declarations, 281
gotoxy(), 308
highvideo, 308
insline, 307
lowvideo, 308
mathematical procedures, 289
memory addresses, 297-298
normvideo, 308
read, 259-260
readln, 259-260
software interrupt procedures, 320
textbackground(), 308
textcolor(), 308
textmode(), 307
window(), 307
write, 259-260
writeln, 259-260
programs
format, 259
reading/writing to screen, 259-260
recursion, 280-281
reserved words (program), 259
run menu options, 258
semicolon (;), statement separator, 259
short-circuit evaluation, 267
statements
case, 263-264
conditional statements, 262
for, 264
if, 262
if-else, 262
repeat, 265-266
while, 264
strings, 272-273
concatenation, 261
copying, 288
determining length, 287
determining starting positions, 288
text, manipulating, 308, 310
units, 283-285
using, 258-259
variables
assigning values to, 261
memory addresses, 297-298
Type statement (Fortran 95), 17
Type() function (Icon), 334
typecasting (Turbo Pascal data types), 285-286
typed binary files (Turbo Pascal), 302-303
typedef storage classes (C variables), 100

U

unformatted records (Fortran 95), 51
Ungetc function (C), 194
Ungetwc function (C), 230
unions (C), 169-170
bit-fields, 170, 172
declaring, 169
recalling data storage, 170
units (Turbo Pascal), 283-284
built-in, 285
DOS unit, 311-315
UNIX
association with C, 61
synergy with C, 81
Unsigned data type (C), 91
Until control structure (Icon), 335
untyped binary files (Turbo Pascal), 303
Upcase() function (Turbo Pascal), 287
Use statement (Fortran 95), 27
uses crt statement (Turbo Pascal), 304

V

Val() function (Turbo Pascal), 286
variables
C
declaring, 95-96, 167
duration of, 98
external declarations, 99, 143-145
initializing, 102-103
pointers, initializing, 153
storage classes, 98-101
structures, 168
Fortran 95, 18
attributes, 19
declaring as pointers, 46-47
Icon
assigning values to, 332
environment variables, 375
global, 338
local, 338
null values, 335
scope, 337-338
static, 338
termination dumps, 379
Turbo Pascal
assigning values to, 261
memory addresses, 297-298
Va_arg function (C), 223
Va_end function (C), 223-224
Va_start function (C), 223
Vfprintf function (C), 198
Vfwprintf function (C), 231
VIB (Visual Interface Builder), 401-404
visual interfaces (Icon), 372-373
Void data type (C), 93
volatile qualifiers (C data types), 101
Vsprintf function (C), 198
Vswprintf function (C), 231
Vwprintf function (C), 231

W

Wchar function library (C), 228
Wchar_t data type (C), 93
Wcrtomb function (C), 232
Wcsrtombs function (C), 232
Wcstombs function (C), 213
Wctob function (C), 231
Wctomb function (C), 212
Where statement (Fortran 95), 34
While control structure (Icon), 335
while statements
C, 129-130
Turbo Pascal, 264
wide characters (C), 93, 95, 233-234
wide string functions (C), 228-232
Window() procedure (Turbo Pascal), 307
windows
active, manipulating in Turbo Pascal, 306-308
Icon, 364
color, 368
dialog boxes, 371-372
events, 369
image files, loading, 369
user interaction, 369-372
visual interfaces, 372-373
writing to, 367-368
Wirth, Niklaus, 253
Wprintf function (C), 230
Write procedure (Turbo Pascal), 259-260
Write statement (Fortran 95), 54
Writeln procedure (Turbo Pascal), 259-260
Wscanf function (C), 230

X-Y-Z

X3J11 C standardization committee, 76
Yacc parser[special character]generator, 68


Table of Contents