Concepts of Programming Languages

(Sean Pound) #1
Index 793

summary of, 466
without recursion, 449–451
Subrange types
designing, 258–259
evaluation of, 259
introduction to, 258
Subscript bindings, 262–264
Subscripts, 258
Substring references, 250
subtype enumeration type, 258
Subtype polymorphism, 422
Subtypes, 306, 530–531
Sun Microsystems, 92
super
in Java, 553
in Objective-C, 550
pseudovariables, 535
in Ruby, 564
Superclasses, 526
Suppress pragma, 640
Swing GUI components, 656–657
switch
in C, 77–78
in C#, 376
multiple-selection statements
and, 355–358
Symbolic atoms and lists,
689–691
Symbolic logic, 729
Synchronization
in Ada, 599–601
in concurrency, 586–592
introduction to, 581–585
in Java, 607–608
of modifiers, 93, 592
nonblocking, 612
of statements, 608
of threads, 616–617
Synchronous message passing,
593–594
Syntactic domains, 142
Syntax
ambiguous grammars in,
122–123
analysis of, 25–27, 168–169


associativity in, 126–128
attribute grammars and. see
Attribute grammars
bibliographic notes on,
161–162
BNF and, 117–118
context-free grammars and,
117–118
derivations in, 119–121
design of, 12–13
in Extended BNF, 129–132
fundamentals of, 118–119
generation of, 116–117
grammars and, 117–121, 132
if-then-else statements,
128–129
introduction to, 113–115
issues in describing, 115–117
of LISP, 50
list descriptions in, 119
methods of describing, 117
operator precedence in,
123–126
parsing and. see Parsing
recognition of, 116
recognizers in, 132
semantics and. see Semantics
summary of, 161, 197–199
unambiguous grammars in,
128–129
Synthesized attributes, 134
Syracuse University, 732
System.Object, 102
Systems programming, 6–7
Systems software, 6

T
Tagged types, 559–561
Tail recursive functions,
695–696
Task descriptors, 586
Task ready queues, 584
task specifications, 594–595
Task termination, 601
Tasking_Error exceptions, 639

Tasks, 581–585
Template functions, 423
Terminal symbols, 118, 122
Terminal values, 363
terminate, 599, 601
Terms, 737
Ternary operators, 319
Tests, 709
Texas A&M University, 480, 536
Text boxes, 656
then, 128–129, 350
Theorem-proving, 732–734
Theory of data types, 308–310
Thompson, Ken, 91
Threads
in C++, 544
in competition synchronization,
607–608
concurrency in, 603–604, 613
in cooperation synchronization,
608–611
defined, 581
explicit locks in, 612–613
in Java, 93, 606–607
in nonblocking synchronization,
612
priorities of, 606–607
semaphores in, 607
Thread class, 604–606
Threads of control, 579–580
throw statements, 644–651
Thrown exceptions, 631
throws clauses, 654
Tokens, 115, 170–177
Tombstones, 297–298
Top-down parsers, 179
Top-down resolution, 741
Total correctness, 158
Tracing models, 744–745
Trimming, 74
Tripod, 66–67
try blocks, 612, 614
try clauses
in C++, 643–646
in Java, 648–653
Free download pdf