Concepts of Programming Languages

(Sean Pound) #1

788 Index


PDA (Pushdown automaton),
193
Perl
arrays in, 261–264
assignments in, 337–341
associative arrays in, 272–276
binary logic operators in, 334
C# vs., 103
dynamic length strings in, 253
dynamic scoping in, 227–228
evolution of, 36–37
exponentiation in, 396
foreach statements in, 380
hybrid system implementing,
30
as imperative programming
language, 22
overview of, 95–97
parameter passing in, 407
pattern matching in, 170, 252
prefix operators in, 319
Python vs., 99–100
Ruby vs., 100
slices in, 268
then and else clauses in, 350,
352
Unicode in, 249
variables in, 205, 211
Perlis, Alan, 46, 53
PHP
arrays in, 273, 276, 373
execution speed in, 718
foreach statements in, 103
global variables in, 224–225
overview of, 98–99
parameter passing in, 392, 407
pattern matching in, 252
pure interpretation in, 28
relational operators in, 333
as scripting language, 7, 28
switch statements in, 357
type binding in, 213
variable names in, 205
Phrases, 191–192


Physical concurrency, 579
Pike, Rob, 91
pipeline (|>) operators, 714
Plankalkül, 38–39
PL/I
design process for, 69
evaluation of, 70–71
historical background of, 68
introduction to, 68
language overview of, 69–70
operational semantics in, 142
overview of, 68–71
PL/S, 6
Pointer types
in Ada, 293
in C and C++, 294–295
dangling, 292–293, 297–298
design issues for, 290
evaluation of, 297
heap management and,
298–302
introduction to, 289–290
lost heap-dynamic variables
in, 293
operations in, 290–291
problems in, 291
representations of, 297
Polonsky, I. P., 72
Polymorphic references, 528
Polymorphic subprograms,
422–423
Polymorphism, 422–423
Pontifical University of Rio de
Janeiro, 100, 274
Portability, 18
Portable systems languages. see C
Positional parameters, 392
Postconditions
in assignment statements,
150–152
introduction to, 148–149
in logical pretest loops,
154–158
in program proofs, 158–160

in selection statements,
153–154
in sequences, 152–153
weakest preconditions
and. see Weakest
preconditions
Posttest, 363
pragma, 601, 640
Precedence, 319–321
Precision, 247
Preconditions
in assignment statements,
150–152
introduction to, 148–149
in logical pretest loops,
154–158
in program proofs, 158–160
in selection statements,
153–154
in sequences, 152–153
weakest. see Weakest
preconditions
Predicate calculus
defined, 729
for logic programming
languages, 728–734
in Prolog, 79
Predicate functions, 134,
689–691
Predicate transformers,
154–158
Prefix operators, 319
Preprocessors, 30
Pretest, 362
Primitive data types
boolean, 249
character, 249–250
complex, 248
decimal, 248–249
floating point, 247–248
integer, 246–247
numeric, 246–249
Primitive numeric functions,
681–682
Free download pdf