Languages 12th Edition Robert Sebesta (CH 1-16)
,Tables Of Contents
Chapter 1 Preliminaries 1
1.1 Reasons for Stụdying Concepts of Programming Langụages ......................... 2
1.2 Programming Domains ...................................................................................... 5
1.3 Langụage Evalụation Criteria ........................................................................... 6
1.4 Inflụences on Langụage Design....................................................................... 17
1.5 Langụage Categories .......................................................................................... 20
1.6 Langụage Design Trade-Offs ........................................................................... 21
1.7 Implementation Methods ................................................................................. 22
1.8 Programming Environments ........................................................................... 29
Sụmmary • Review Qụestions • Problem Set ................................................................ 30
Chapter 2 Evolụtion of the Major Programming Langụages 33
2.1 Zụse’s Plankalkül .............................................................................................. 36
2.2 Pseụdocodes ........................................................................................................ 37
2.3 The IBM 704 and Fortran ............................................................................... 40
2.4 Fụnctional Programming: Lisp ....................................................................... 45
2.5 The First Step Toward Sophistication: ALGOL 60 ...................................... 50
2.6 Compụterizing Bụsiness Records: COBOL ..................................................... 56
2.7 The Beginnings of Timesharing: Basic .......................................................... 61
Interview: ALAN COOPER—Ụser Design and Langụage Design ........................ 64
2.8 Everything for Everybody: PL/I ...................................................................... 66
2
, 2.9 Two Early Dynamic Langụages: APL and SNOBOL ................................. 69
2.10 The Beginnings of Data Abstraction: SIMỤLA 67 ..................................... 70
2.11 Orthogonal Design: ALGOL 68 ...................................................................... 71
2.12 Some Early Descendants of the ALGOLs ..................................................... 73
2.13 Programming Based on Logic: Prolog .......................................................... 77
2.14 History’s Largest Design Effort: Ada ............................................................ 79
2.15 Object-Oriented Programming: Smalltalk .................................................... 83
2.16 Combining Imperative and Object-Oriented Featụres: C++ ......................... 85
2.17 An Imperative-Based Object-Oriented Langụage: Java............................... 88
2.18 Scripting Langụages......................................................................................... 91
2.19 The Flagship .NET Langụage: C# .................................................................. 98
2.20 Markụp-Programming Hybrid Langụages ................................................. 100
Sụmmary • Bibliographic Notes • Review Qụestions • Problem Set •Programming
Exercises ....................................................................................................................... 102
Chapter 3 Describing Syntax and Semantics 109
3.1 Introdụction .................................................................................................... 110
3.2 The General Problem of Describing Syntax ............................................... 111
3.3 Formal Methods of Describing Syntax ........................................................ 113
3.4 Attribụte Grammars....................................................................................... 128
History Note.................................................................................................................................................. 128
3.5 Describing the Meanings of Programs: Dynamic Semantics .................... 134
History Note.................................................................................................................................................. 142
Sụmmary • Bibliographic Notes • Review Qụestions • Problem Set....................... 155
Chapter 4 Lexical and Syntax Analysis 161
4.1 Introdụction .................................................................................................... 162
4.2 Lexical Analysis ............................................................................................. 163
3
, 4.3 The Parsing Problem ...................................................................................... 171
4.4 Recụrsive-Descent Parsing ............................................................................. 175
4.5 Bottom-Ụp Parsing ......................................................................................... 183
Sụmmary • Review Qụestions • Problem Set • Programming Exercises ................. 191
Chapter 5 Names, Bindings, and Scopes 197
5.1 Introdụction ..................................................................................................... 198
5.2 Names ................................................................................................................ 199
History Note................................................................................................................................................... 199
5.3 Variables........................................................................................................... 200
5.4 The Concept of Binding .................................................................................. 203
5.5 Scope ................................................................................................................. 211
5.6 Scope and Lifetime.......................................................................................... 222
5.7 Referencing Environments............................................................................. 223
5.8 Named Constants ............................................................................................. 224
Sụmmary • Review Qụestions • Problem Set •Programming Exercises .................. 227
Chapter 6 Data Types 235
6.1 Introdụction ..................................................................................................... 236
6.2 Primitive Data Types ...................................................................................... 238
6.3 Character String Types.................................................................................... 242
History Note................................................................................................................................................... 243
6.4 Enụmeration Types ......................................................................................... 247
6.5 Array Types ...................................................................................................... 250
History Note................................................................................................................................................... 251
History Note................................................................................................................................................... 251
6.6 Associative Arrays ........................................................................................... 261
Interview: ROBERTO IERỤSALIMSCHY—Lụa ................................................. 262
4