Concepts of Programming Languages

(Sean Pound) #1
Index 779

Deep binding, 418–419
Deferred reference counting,
299–300
Definitions
in COBOL, 60
of functions, 682–684
in subprograms, 389–391
Delegates, 420–421
delete
in associative arrays, 273
in C++, 291–293, 486
data types, 263
explicit deallocation using, 538
Delphi, 90
Denotational semantics
assignment statements in, 146
evaluation of, 147
examples of, 143–145
expressions in, 145–146
introduction to, 142–143
logical pretest loops in, 147
state of programs and, 145
Department of Defense (DoD),
59–61, 81
Dependents, 601
Depth-first searches, 742
Dereferencing pointers, 291
Derivations, 119–121
Derived classes, 526, 540–544
Derived types, 306
Descriptors, 245
Design issues
for abstract data types,
478–479
for array types, 260
for character string types, 250
for concurrency, 585–586
for exception handling, 633–636
for functions, 428–429
for iterative statements, 363
for multiple-selection
statements, 354–355
for names, 205
for object-oriented
programming, 529–534


for pointer types, 290
for subprograms, 396–397,
413–414
trade-offs, 23
for two-way selection
statements, 350
for union types, 285
Destructors, 487
Diamond inheritance, 531
Dictionaries, 99, 273
Dijkstra, Edsger
guarded commands by,
376–379, 593
on PL/I, 70
semaphores by, 586
on synchronization operations,
591
Direct left recursion, 187
Discriminated unions, 285–287
Disjoint tasks, 581
dispose, 298
DLLs (dynamic link libraries), 67,
512
DO CONCURRENT constructs, 45
do-while statements,
369–370
DoD (Department of Defense),
59–61, 81
Dot notation, 278–279
Double floating-point data types,
247
Dynabook, 86
Dynamic binding
in Ada 95, 561–562
in C#, 557–558
in C++, 544–547
introduction to, 210
in Java, 555
of method calls to methods,
566–568
in Objective-C, 551–552
in object-oriented programming,
527–529, 533
in Ruby, 565
in Smalltalk, 535

Dynamic chains, 450
Dynamic dispatch. see Dynamic
binding
Dynamic languages, 68–71
Dynamic length strings,
253–255
dynamic link libraries (DLLs), 67,
512
Dynamic links, 446
Dynamic scoping, 227–229,
462–466
Dynamic semantics
axiomatic semantics as. see
Axiomatic semantics
denotational semantics as,
142–147
introduction to, 139
operational semantics as,
139–142
Dynamic type binding, 212–214,
303, 569
Dynamic type checking, 303

E
Eager approach, 299
EBNF (Extended BNF), 129–132,
181–182
ECMA (European Computer
Manufacturers Association),
97
Edinburgh syntax, 737
Edwards, Daniel J., 680
Eich, Brendan, 97
Elaboration, 215
Elemental operators, Fortran 95+,
266
Elliptical references, 279
else-if clause, 360–361
Encapsulation constructs
in Ada, 482, 512, 516
in C, 510–511
in C#, 498, 512–513
in C++, 486, 511–512,
514–515
Free download pdf