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
|