Concepts of Programming Languages

(Sean Pound) #1

792 Index


Statement-level control structures
conclusions about, 379–380
counter-controlled loops,
367–368
guarded commands, 376–379
introduction to, 2–3, 347–349
iterative statements, 362–363,
371–375
logically controlled loops,
368–370
selection statements, 350
for statements, 364–367
summary of, 380
two-way selection statements,
350–354
unconditional branch
statements, 375–376
Static ancestors, 219
Static arrays, 262
Static binding, 210, 533
Static chaining, 454–460
Static length strings, 252–255
Static links, 454–455
static modifiers, 263
Static parents, 219
Static scoping
evaluation of, 227
overview of, 219–220
pointers in, 455
Static semantics, 133
Static type bindings, 211–212
Static variables
in binding, 215
in dynamic scoping, 229
introduction to, 13
in nested subprograms, 398
static_depth, 455
Steele Jr., Guy L., 356
Steelman requirements document,
82
Stepsize, 363
Stichting Mathematisch Centrum,
99
Storage bindings, 214–215
Storage_Error exceptions, 639


Strachey, Christopher, 147
Strawman requirements document,
81–82
Strict programming languages,
710
Strong typing, 303–304
Stroustrup, Bjarne
on C++, 480–481
C++ by, 88
on programming paradigms,
536–537
structs
in C, 308, 310
in C#, 102
in C-based languages, 38
data type, 277
introduction to, 11
Structural operational semantics,
140
Structure type equivalence, 305
Structured Query Language (SQL),
757
Structures, 737
Subclasses, 526, 530–531
Subgoals, 740
Subprogram calls, 389
Subprogram definitions, 389
Subprogram headers, 389
Subprogram linkage, 442
Subprogram-level concurrency,
581–586
Subprograms
in C# 2005, 427
in C++, 423–425
calling indirectly, 419–421
characteristics of, 388–389
closures, 430–432
coroutines, 432–435
definitions in, 389–391
design issues for, 396–397,
413–414
in F#, 427–428
functions as, 395–396,
428–429
fundamentals of, 388

generic, 422–428
implementation of. see
Subprograms,
implementing
introduction to, 388
in Java 5.0, 425–426
local referencing environments
for, 397–399
local variables in, 397–399
multidimensional arrays and,
410–413
nested, 397–399
overloaded, 421–422
parameter-passing in. see
Parameter-passing
methods
parameters as, 417–419
parameters for, 391–395
problem set on, 438–439
procedures as, 395–396
returned values and, 429
side effects of functions in,
428–429
summary of, 435–436
type checking parameters,
408–410
user-defined overloaded data
types in, 430
Subprograms, implementing
blocks in, 460–462
calls in, 442
deep access in, 462–464
dynamic scoping in,
462–466
introduction to, 442
of nested subprograms,
454–460
with recursion, 451–453
returns in, 442
shallow access in, 464–466
of simple subprograms,
443–445
stack-dynamic local variables
for, 445–453
static chaining for, 454–460
Free download pdf