Author(s): Robert W. Sebesta
Series: 12th
Edition: 12
Year: 0
Language: English
Commentary: converted to pdf by calibre 3.23.0 [https://calibre-ebook.com]
Pages: 1385
CONCEPTS OF PROGRAMMING LANGUAGES......Page 2
CONCEPTS OF PROGRAMMING LANGUAGES......Page 3
CONCEPTS OF PROGRAMMING LANGUAGES......Page 4
CONCEPTS OF PROGRAMMING LANGUAGES......Page 5
CONCEPTS OF PROGRAMMING LANGUAGES......Page 8
Changes for the Twelfth Edition of Concepts of Programming Languages......Page 10
Supplemental Materials......Page 16
Supplemental Materials......Page 19
Supplemental Materials......Page 20
Contents......Page 31
CONCEPTS OF PROGRAMMING LANGUAGES......Page 32
1 Preliminaries......Page 33
1.1 Reasons for Studying Concepts of Programming Languages......Page 38
1.2.4?Web Software......Page 41
1.3.4?Cost......Page 56
1.4.2?Programming Design Methodologies......Page 62
1.5 Language Categories......Page 64
1.6 Language Design Trade-Offs......Page 66
1.7.4?Preprocessors......Page 78
1.8 Programming Environments......Page 80
SUMMARY......Page 81
REVIEW QUESTIONS......Page 84
PROBLEM SET......Page 86
2 Evolution of the Major Programming Languages......Page 91
2.1.2?Language Overview......Page 94
2.2.4?Related Work......Page 98
2.3.6?Evaluation......Page 106
2.4.6?Related Languages......Page 114
2.5.7?Evaluation......Page 122
2.6.4?Evaluation......Page 128
2.7.3?Evaluation......Page 137
2.8.4?Evaluation......Page 142
2.9.2?Origins and Characteristics of SNOBOL......Page 144
2.10.2?Language Overview......Page 146
2.11.3?Evaluation......Page 149
2.12.2.2 Evaluation......Page 155
2.13.3?Evaluation......Page 158
2.14.5?Ada 95 and Ada 2005......Page 164
2.15.3?Evaluation......Page 168
2.16.5?Another Related Language: Delphi......Page 173
2.17.3?Evaluation......Page 178
2.18.5?Origins and Characteristics of Ruby......Page 186
2.19.3?Evaluation......Page 190
2.20.2?JSP......Page 193
SUMMARY......Page 194
BIBLIOGRAPHIC NOTES......Page 195
REVIEW QUESTIONS......Page 199
PROBLEM SET......Page 202
PROGRAMMING EXERCISES......Page 203
3 Describing Syntax and?Semantics......Page 204
3.1 Introduction......Page 206
3.2.2?Language Generators......Page 209
3.3.3?Grammars and Recognizers......Page 235
3.4.7?Evaluation......Page 247
3.5.3.8 Evaluation......Page 279
SUMMARY......Page 280
BIBLIOGRAPHIC NOTES......Page 281
REVIEW QUESTIONS......Page 283
PROBLEM SET......Page 289
4 Lexical and Syntax Analysis......Page 290
4.1 Introduction......Page 293
4.2 Lexical Analysis......Page 303
4.3.4?The Complexity of Parsing......Page 308
4.4.2?The LL Grammar Class......Page 320
4.5.3?LR Parsers......Page 332
SUMMARY......Page 335
REVIEW QUESTIONS......Page 337
PROBLEM SET......Page 339
PROGRAMMING EXERCISES......Page 341
5 Names, Bindings, and Scopes......Page 342
5.1 Introduction......Page 344
5.2.3?Special Words......Page 347
5.3.4?Value......Page 351
5.4.3.4 Implicit Heap-Dynamic Variables......Page 363
5.5.7?Evaluation of Dynamic Scoping......Page 378
5.6 Scope and Lifetime......Page 379
5.7 Referencing Environments......Page 382
5.8 Named Constants......Page 385
SUMMARY......Page 386
REVIEW QUESTIONS......Page 388
PROBLEM SET......Page 394
PROGRAMMING EXERCISES......Page 395
6 Data Types......Page 397
6.1 Introduction......Page 400
6.2.3?Character Types......Page 406
6.3.5?Implementation of Character String Types......Page 415
6.4.3?Evaluation......Page 420
6.5.9?Implementation of Array Types......Page 439
6.6.2?Implementing Associative Arrays......Page 442
6.7.4?Implementation of Record Types......Page 448
6.8 Tuple Types......Page 450
6.9 List Types......Page 455
6.10.5?Implementation of Union Types......Page 459
Variable-Size Cells?......Page 478
6.12 Optional Types......Page 480
6.13 Type Checking......Page 482
6.14 Strong Typing......Page 484
6.15 Type Equivalence......Page 490
6.16 Theory and Data Types......Page 493
SUMMARY......Page 495
BIBLIOGRAPHIC NOTES......Page 496
REVIEW QUESTIONS......Page 499
PROBLEM SET......Page 501
PROGRAMMING EXERCISES......Page 503
7 Expressions and -Assignment Statements......Page 504
7.1 Introduction......Page 505
7.2.2.2 Referential Transparency and Side Effects......Page 518
7.3 Overloaded Operators......Page 521
7.4.3?Errors in Expressions......Page 526
7.5.2?Boolean Expressions......Page 530
7.6 Short-Circuit Evaluation......Page 532
7.7.7?Assignment in Functional Programming Languages......Page 539
7.8 Mixed-Mode Assignment......Page 540
SUMMARY......Page 541
REVIEW QUESTIONS......Page 543
PROBLEM SET......Page 547
PROGRAMMING EXERCISES......Page 549
8 Statement-Level Control Structures......Page 550
8.1 Introduction......Page 553
8.2.2.4 Multiple Selection Using if......Page 570
8.3.4?Iteration Based on Data Structures......Page 588
8.4 Unconditional Branching......Page 590
8.5 Guarded Commands......Page 594
8.6 Conclusions......Page 596
SUMMARY......Page 598
REVIEW QUESTIONS......Page 600
PROBLEM SET......Page 602
PROGRAMMING EXERCISES......Page 605
9 Subprograms......Page 607
9.1 Introduction......Page 608
9.2.4?Procedures and Functions......Page 618
9.3 Design Issues for Subprograms......Page 620
9.4.2?Nested Subprograms......Page 623
9.5.8?Examples of Parameter Passing......Page 646
9.6 Parameters That Are Subprograms......Page 649
9.7 Calling Subprograms Indirectly......Page 652
9.8.3?Number of Returned Values......Page 654
9.9 Overloaded Subprograms......Page 656
9.10.4?Generic Functions in F#......Page 664
9.11 User-Defined Overloaded Operators......Page 665
9.12 Closures......Page 668
9.13 Coroutines......Page 673
SUMMARY......Page 675
REVIEW QUESTIONS......Page 678
PROBLEM SET......Page 681
PROGRAMMING EXERCISES......Page 683
10 Implementing Subprograms......Page 684
10.1 The General Semantics of Calls and Returns......Page 685
10.2 Implementing Simple Subprograms......Page 690
10.3.3?Recursion......Page 703
10.4.2?Static Chains......Page 713
10.5 Blocks......Page 717
10.6.2?Shallow Access......Page 723
SUMMARY......Page 724
REVIEW QUESTIONS......Page 726
PROBLEM SET......Page 730
PROGRAMMING EXERCISES......Page 731
11 Abstract Data Types and Encapsulation Constructs......Page 733
11.1 The Concept of Abstraction......Page 735
11.2.3?An Example......Page 740
11.3 Design Issues for Abstract Data Types......Page 742
11.4.4.4 Evaluation......Page 761
11.5.3?C# 2005......Page 767
11.6.4?C# Assemblies......Page 772
11.7.3?Ruby Modules......Page 778
SUMMARY......Page 780
REVIEW QUESTIONS......Page 782
PROBLEM SET......Page 784
PROGRAMMING EXERCISES......Page 786
12 Support for Object--Oriented Programming......Page 787
12.1 Introduction......Page 789
12.2.3?Dynamic Binding......Page 796
12.3.7?Initialization of Objects......Page 804
12.4.5.4 Evaluation......Page 839
12.5.2?Dynamic Binding of Method Calls to Methods......Page 844
12.6.4?Reflection in C#......Page 852
SUMMARY......Page 854
REVIEW QUESTIONS......Page 857
PROBLEM SET......Page 859
PROGRAMMING EXERCISES......Page 860
13 Concurrency......Page 862
13.1.3?Motivations for the Use of Concurrency......Page 869
13.2.3?Design Issues......Page 877
13.3.4?Evaluation......Page 884
13.4.4?Evaluation......Page 888
13.5.2?The Concept of Synchronous Message Passing......Page 890
13.6.5?Evaluation......Page 902
13.7.8?Evaluation......Page 915
13.8.3?Evaluation......Page 921
13.9.3?F#......Page 926
13.10.1?High-Performance Fortran......Page 930
SUMMARY......Page 933
BIBLIOGRAPHIC NOTES......Page 934
REVIEW QUESTIONS......Page 938
PROBLEM SET......Page 940
PROGRAMMING EXERCISES......Page 941
14 Exception Handling and Event Handling......Page 943
14.1.2?Design Issues......Page 952
14.2.6?Evaluation......Page 958
14.3.8?Evaluation......Page 968
14.4.2?Ruby......Page 972
14.5 Introduction to Event Handling......Page 974
14.6.2?The Java Event Model......Page 980
14.7 Event Handling in C#......Page 984
SUMMARY......Page 986
BIBLIOGRAPHIC NOTES......Page 987
REVIEW QUESTIONS......Page 990
PROBLEM SET......Page 993
PROGRAMMING EXERCISES......Page 994
15 Functional Programming Languages......Page 996
15.1 Introduction......Page 999
15.2.2?Functional Forms......Page 1003
15.3 Fundamentals of Functional Programming Languages......Page 1005
15.4.2?The First Lisp Interpreter......Page 1011
15.5.14?Functions That Build Code......Page 1037
15.6 Common Lisp......Page 1040
15.7 ML......Page 1048
15.8 Haskell......Page 1054
15.9 F#......Page 1059
15.10 Support for Functional Programming in Primarily Imperative Languages......Page 1063
15.11 A Comparison of Functional and Imperative Languages......Page 1067
SUMMARY......Page 1069
BIBLIOGRAPHIC NOTES......Page 1070
REVIEW QUESTIONS......Page 1073
PROBLEM SET......Page 1075
PROGRAMMING EXERCISES......Page 1078
16 Logic Programming Languages......Page 1079
16.1 Introduction......Page 1080
16.2.2?Clausal Form......Page 1085
16.3 Predicate Calculus and Proving Theorems......Page 1089
16.4 An Overview of Logic Programming......Page 1092
16.5 The Origins of Prolog......Page 1093
16.6.7?List Structures......Page 1114
16.7.4?Intrinsic Limitations......Page 1122
16.8.3?Natural-Language Processing......Page 1125
SUMMARY......Page 1126
BIBLIOGRAPHIC NOTES......Page 1127
REVIEW QUESTIONS......Page 1129
PROBLEM SET......Page 1131
PROGRAMMING EXERCISES......Page 1132
Bibliography......Page 1152
Index......Page 1153
A......Page 1165
B......Page 1170
C......Page 1186
D......Page 1194
E......Page 1199
F......Page 1205
G......Page 1208
H......Page 1211
I......Page 1218
J......Page 1222
K......Page 1223
L......Page 1230
M......Page 1234
N......Page 1238
O......Page 1242
P......Page 1256
Q......Page 1257
R......Page 1263
S......Page 1276
T......Page 1280
U......Page 1282
V......Page 1284
W......Page 1286
X......Page 1287
Y......Page 1288
Z......Page 1289
Z......Page 1334
Z......Page 1335
Z......Page 1336
Z......Page 1337
Z......Page 1338
Z......Page 1339
Z......Page 1340
Z......Page 1341
Z......Page 1342
Z......Page 1343
Z......Page 1344
Z......Page 1345
Z......Page 1346
Z......Page 1347
Z......Page 1348
Z......Page 1349
Z......Page 1350
Z......Page 1351
Z......Page 1352
Z......Page 1353
Z......Page 1354
Z......Page 1355
Z......Page 1356
Z......Page 1357
Z......Page 1358
Z......Page 1359
Z......Page 1360
Z......Page 1361
Z......Page 1362
Z......Page 1363
Z......Page 1364
Z......Page 1365
Z......Page 1366
Z......Page 1367
Z......Page 1368
Z......Page 1369
Z......Page 1370
Z......Page 1371
Z......Page 1372
Z......Page 1373
Z......Page 1374
Z......Page 1375
Z......Page 1376
Z......Page 1377
Z......Page 1378
Z......Page 1379
Z......Page 1380
Z......Page 1381
Z......Page 1382
Z......Page 1383
Z......Page 1384
Z......Page 1385