Concepts of Programming Languages

(Sean Pound) #1
Index 787

in C#, 556–558
in C++, generally, 538–539,
547–549
in C++ dynamic binding,
544–547
in C++ inheritance, 539–544
child packages in, 562
dynamic binding in, 527–529
inheritance in, 525–527
instance data storage in, 566
introduction to, 21
in Java, 552–556
in Objective-C, 549–552
in Ruby, 563–565
in Smalltalk, 85–87, 534–538
Stroustrup on, 536
summary of, 569–570
support for, generally,
524–525
Objects
in abstract data types, 475
defined, 245–246
exclusivity of, 529–530
initialization of, 533–534
in object-oriented program-
ming, generally, 525–526
OCaml, 52
Operand evaluation order,
325–328
Operational semantics
evaluation of, 142
introduction to, 139–140
process of, 140
Operator evaluation order,
319–325
Operator overloading, 9, 328–329
Operator precedence, 123–126
Operator precedence rules, 320
Optimization, 17
or else statements, 336
OR operators, 333–336
Ordinal data types
enumeration types, 255–258
implementation of, 259
integer, 255


introduction to, 125–129, 255
subrange, 258–259
Orthogonality, 9–12, 73
others, 265, 637
otherwise, 708, 711
Out mode parameter passing, 400
Output functions, 684
Overflow, 332
Overloaded literals, 256–257
Overloaded operators, 328–329
Overloaded subprograms, 397,
421–422
Overridden methods, 526–527
override commands, 557–558

P
Package scope, 515
Package specification, 482–484
Packages, 482–485, 562
Pairwise disjointness test, 188
Papert, Seymour, 86
Paradigms of programming,
536–537
Parameter profiles, 390
Parameterized abstract data types
in Ada, 503–504
in C# 2005, 509
in C++, 505–506
introduction to, 503–509
in Java, 506–509
Parameter-passing methods
of common languages,
406–408
examples of, 414–417
implementation models for,
400–405
implementation of, 405–406
introduction to, 399–400
semantic models of, 400
Parameters
in multidimensional arrays,
410–413
for subprograms, 391–395
subprograms as, 417–419
Parametric polymorphism, 423

params, 393
Parent classes, 526–527
Parentheses, 323–324
Parse trees, 25, 121–122
Parsing
bottom-up, 180, 190–192
complexity of, 180–181
introduction to, 177–178
LL grammar class in,
187–190
LR parsers for, 193–197
problem set on, 200–201
programming exercises
on, 201
recursive-descent, 181–187
review questions on,
199–200
shift-reduce algorithms for,
192–193
summary of, 197–199
top-down, 179
Partial correctness, 158
Partial evaluation, 706
Pascal
Concurrent, 591
dispose operator in, 293
enumeration data types in,
256
evolution of, 36–37, 57,
75–77
lock-and-keys approach
in, 298
nested subprograms in, 399
parameter-passing in, 419
run-time checks in, 312
subrange types in, 258
Turbo, 101
Pass-by-assignment, 408
Pass-by-copy, 403
Pass-by-name, 404–405
Pass-by-reference, 403–404
Pass-by-result, 401–403
Pass-by-value-result, 403
Passedby value, 401
pcall constructs, 618
Free download pdf