程序设计语言 设计与实现 第3版 英文版PDF电子书下载
- 电子书积分:19 积分如何计算积分?
- 作 者:(美)(T.W.普拉特)TerrenceW.Pratt,(美)(M.V.泽尔柯维茨)MarvinV.Zelkowitz著
- 出 版 社:北京:清华大学出版社
- 出版年份:1998
- ISBN:7302028338
- 页数:656 页
PartⅠConcepts 1
1 The Study of Programming Languages 2
1.1 Why Study Programming Languages? 2
1.2 A Short History of Programming Languages 5
1.2.1 Development of Early Languages 5
1.2.2 Role of Programming Languages 9
1.3 What Makes a Good Language? 12
1.3.1 Attributes of a Good Language 12
1.3.2 Application Domains 16
1.3.3 I anguage Standardization 19
1.4 Effects of Environments on Languages 23
1.4.1 Batch-Processing Environments 23
1.4.2 Interactive Environments 24
1.4.3 Embedded System Environments 25
1.4.4 Programming Environments 26
1.5 Suggestions for Further Reading 30
1.4.5 Environment Frameworks 30
1.6 Problems 31
2 Language Design Issues 33
2.1 The Structure and Operation of a Computer 33
2.1.1 The Hardware of the Computer 35
2.1.2 Firmware Computers 39
2.1.3 Translators and Software-Simulated Computers 41
2.2 Virtual Computers and Binding Times 45
2.2.1 Syntax and Semantics 46
2.2.2 Virtual Computers and Language Implementations 47
2.2.3 Hierarchies of Computers 48
2.2.4 Binding and Binding Time 50
2.3 Language Paradigms 55
2.4 Suggestions for Further Reading 59
2.5 Problems 59
3.1 Programming Language Syntax 61
3 Language Translation Issues 61
3.1.1 General Syntactic Criteria 62
3.1.2 Syntactic Elements of a Language 66
3.1.3 Overall Program-Subprogram Structure 69
3.2 Stages in Translation 72
3.2.1 Analysis of the Source Program 74
3.2.2 Synthesis of the Object Program 77
3.3 Formal Translation Models 79
3.3.1 BNF Grammars 80
3.3.2 Finite-State Automata 89
3.3.3 Pushdown Automata 93
3.3.4 Efficient Parsing Algorithms 95
3.3.5 Semantic Modeling 98
3.4 Suggestions for Further Reading 102
3.5 Problems 103
4.1.1 Data Objects, Variables, and Constants 107
4.1 Properties of Types and Objects 107
4 Data Types 107
4.1.2 Data Types 112
4.1.3 Specification of Elementary Data Types 113
4.1.4 Implementation of Elementary Data Types 117
4.1.5 Declarations 119
4.1.6 Type Checking and Type Conversion 121
4.1.7 Assignment and Initialization 127
4.2.1 Numeric Data Types 130
4.2 Elementary Data Types 130
4.2.2 Enumerations 137
4.2.3 Booleans 139
4.2.4 Characters 140
4.2.5 Internationalization 141
4.3 Structured Data Types 142
4.3.1 Structured Data Objects and Data Types 142
4.3.2 Specification of Data Structure Types 143
4.3.3 Implementation of Data Structure Types 145
4.3.4 Declarations and Type Checking for Data Structures 149
4.3.5 Vectors and Arrays 151
4.3.6 Records 160
4.3.7 Lists 167
4.3.8 Character Strings 172
4.3.9 Pointers and Programmer-Constructed Data Objects 175
4.3.10 Sets 178
4.3.11 Executable Data Objects 181
4.3.12 Files and Input-Output 181
4.4 Suggestions for Further Reading 187
4.5 Problems 187
5 Abstraction I: Encapsulation 195
5.1 Abstract Data Types 196
5.1.1 Evolution of the Data Type Concept 197
5.1.2 Information Hiding 198
5.2.1 Subprograms as Abstract Operations 200
5.2 Encapsulation by Subprograms 200
5.2.2 Subprogram Definition and Invocation 203
5.2.3 Subprogram Definitions as Data Objects 208
5.3 Type Definitions 209
5.3.1 Type Equivalence 211
5.3.2 Type Definitions with Parameters 215
5.4 Storage Management 216
5.4.1 Major Run-Time Elements Requiring Storage 217
5.4.2 Programmer-and System-Controlled Storage Management 219
5.4.3 Static Storage Management 220
5.4.4 Stack-Based Storage Management 221
5.4.5 Heap Storage Management: Fixed-Size Elements 223
5.4.6 Heap Storage Management: Variable-Size Elements 231
5.5 Suggestions for Further Reading 234
5.6 Problems 234
6 Sequence Control 238
6.1 Implicit and Explicit Sequence Control 238
6.2 Sequencing with Arithmetic Expressions 239
6.2.1 Tree-Structure Representation 240
6.2.2 Execution-Time Representation 248
6.3 Sequencing with Nonarithmetic Expressions 253
6.3.1 Pattern Matching 253
6.3.2 Unification 257
6.3.3 Backtracking 263
6.4 Sequence Control Between Statements 264
6.4.1 Basic Statements 264
6.4.2 Structured Sequence Control 270
6.4.3 Prime Programs 279
6.5 Suggestions for Further Reading 284
6.6 Problems 284
7 Subprogram Control 286
7.1 Subprogram Sequence Control 286
7.1.1 Simple Call-Return Subprograms 288
7.1.2 Recursive Subprograms 292
7.2 Attributes of Data Control 294
7.2.1 Names and Referencing Environments 295
7.2.2 Static and Dynamic Scope 300
7.2.3 Block Structure 303
7.2.4 Local Data and Local Referencing Environments 305
7.3 Shared Data in Subprograms 311
7.3.1 Parameters and parameter Transmission 312
7.3.2 Explicit Common Environments 330
7.3.3 Dynamic Scope 333
7.3.4 Static Scope and Block Stucture 337
7.4 Suggestions for Further Reading 344
7.5 Problems 345
8 Abstraction Ⅱ: Inheritance 350
8.1 Abstract Data Types Revisited 351
8.2 Inheritance 358
8.2.1 Derived Classes 359
8.2.2 Methods 362
8.2.3 Abstract Classes 364
8.2.4 Objects and Messages 366
8.2.5 Abstraction Concepts 370
8.3 Polymorphism 372
8.4 Suggestions for Further Reading 373
8.5 Problems 374
9 Advances in Language Design 375
9.1 Variations on Subprogram Control 377
9.1.1 Exceptions and Exceptions Handlers 377
9.1.2 Coroutines 382
9.1.3 Scheduled Subprograms 383
9.1.4 Nonsequential Execution 385
9.2 Parallel Programming 385
9.2.1 Concurrent Execution 387
9.2.2 Guarded Commands 388
9.2.3 Tasks 391
9.2.4 Synchronization of Tasks 393
9.3 Formal Properties of Languages 404
9.3.1 Chomsky Hierarchy 405
9.3.2 Undecidability 408
9.3.3 Algorithm Complexity 413
9.4 Language Semantics 416
9.4.1 Denotational Semantics 416
9.4.2 Program Verification 423
9.4.3 Algebraic Data Types 428
9.4.4 Resolution 431
9.5 Hardware Developments 433
9.5.1 Processor Design 433
9.5.2 System Design 436
9.6 Software Architecture 438
9.6.1 Persistent Data and Transaction Systems 438
9.6.2 Networks and Client/Server Computing 440
9.6.3 Desktop Publishing 441
9.7 Suggestions for Further Reading 444
9.6.4 Programming Language Trends 444
9.8 Problems 445
PartⅡ Paradigms and Languages 449
10 Simple Procedural Languages 451
10.1 FORTRAN 451
10.1.1 History 452
10.1.2 Hello World 452
10.1.3 Brief Overview of the Language 453
10.1.4 Data Objects 457
10.1.5 Sequence Control 462
10.1.6 Subprograms and Storage Management 468
10.1.7 Abstraction and Encapsulation 470
10.1.8 Language Evaluation 471
10.2 C 471
10.2.2 Hello World 472
10.2.3 Brief Overview of the Language 472
10.2.1 History 472
10.2.4 Data Objects 477
10.2.5 Sequence Control 482
10.2.6 Subprograms and Storage Management 485
10.2.7 Abstraction and Encapsulation 489
10.2.8 Language Evaluation 489
10.3 Suggestions for Further Reading 490
10.4 Problems 490
11 Block-Structured Procedural Languages 492
11.1 Pascal 492
11.1.1 History 493
11.1.2 Hello World 494
11.1.3 Brief Overview of the Language 494
11.1.4 Data Objects 498
11.1.5 Sequence Control 505
11.1.6 Subprograms and Storage Management 509
11.1.8 Language Evaluation 516
11.1.7 Abstraction and Encapsulation 516
11.2 Suggestions for Further Reading 518
11.3 Problems 518
12 Object-Based Languages 520
12.1 Ada 520
12.1.1 History 520
12.1.2 Hello World 522
12.1.3 Brief Overview of the Language 522
12.1.4 Data Objects 527
12.1.5 Sequence Control 536
12.1.6 Subprograms and Storage Management 540
12.1.7 Abstraction and Encapsulation 547
12.1.8 Language Evaluation 549
12.2 C++ 550
12.2.1 History 550
12.2.3 Brief Overview of the Language 551
12.2.2 Hello World 551
12.2.4 Data Objects 556
12.2.5 Sequence Control 561
12.2.6 Subprograms and Storage Management 562
12.2.7 Abstraction and Encapsulation 564
12.2.8 Language Evaluation 564
12.3 Smalltalk 565
12.3.1 History 565
12.3.3 Brief Overview of the Language 566
12.3.2 Hello World 566
12.3.4 Data Objects 570
12.3.5 Sequence Control 572
12.3.6 Subprograms and Storage Management 574
12.3.7 Abstraction and Encapsulation 577
12.3.8 Language Evaluation 577
12.4 Suggestions for Further Reading 578
12.5 Problems 579
13.1 LISP 581
13 Functional Languages 581
13.1.2 Hello World 582
13.1.1 History 582
13.1.3 Brief Overview of the Language 583
13.1.4 Data Objects 587
13.1.5 Sequence Control 589
13.1.6 Subprograms and Storage Management 593
13.1.7 Abstraction and Encapsulation 599
13.1.8 Language Evaluation 599
13.2.2 Hello World 600
13.2 ML 600
13.2.1 History 600
13.2.3 Brief Overview of the Language 601
13.2.4 Data Objects 603
13.2.5 Sequence Control 607
13.2.6 Subprograms and Storage Management 611
13.2.7 Abstraction and Encapsulation 613
13.3 Suggestions for Further Reading 616
13.2.8 Language Evaluation 616
13.4 Problems 617
14 Logic Programming Languages 620
14.1 Prolog 620
14.1.1 History 621
14.1.2 Hello World 621
14.1.3 Brief Overview of the Language 622
14.1.4 Data Objects 625
14.1.5 Sequence Control 626
14.1.6 Subprograms and Storage Management 628
14.1.7 Abstraction and Encapsulation 629
14.1.8 Language Evaluation 630
14.2 Suggestions for Further Reading 630
14.3 Problems 630
References 632
Index 641
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《设计十六日 国内外美术院校报考攻略》沈海泯著 2018
- 《卓有成效的管理者 中英文双语版》(美)彼得·德鲁克许是祥译;那国毅审校 2019
- 《计算机辅助平面设计》吴轶博主编 2019
- 《高校转型发展系列教材 素描基础与设计》施猛责任编辑;(中国)魏伏一,徐红 2019
- 《景观艺术设计》林春水,马俊 2019
- 《程序逻辑及C语言编程》卢卫中,杨丽芳主编 2019
- 《高等教育双机械基础课程系列教材 高等学校教材 机械设计课程设计手册 第5版》吴宗泽,罗圣国,高志,李威 2018
- 《指向核心素养 北京十一学校名师教学设计 英语 九年级 上 配人教版》周志英总主编 2019
- 《幼儿园课程资源丛书 幼儿园语言教育资源》周兢编 2015
- 《SQL与关系数据库理论》(美)戴特(C.J.Date) 2019
- 《魔法销售台词》(美)埃尔默·惠勒著 2019
- 《看漫画学钢琴 技巧 3》高宁译;(日)川崎美雪 2019
- 《优势谈判 15周年经典版》(美)罗杰·道森 2018
- 《社会学与人类生活 社会问题解析 第11版》(美)James M. Henslin(詹姆斯·M. 汉斯林) 2019
- 《海明威书信集:1917-1961 下》(美)海明威(Ernest Hemingway)著;潘小松译 2019
- 《迁徙 默温自选诗集 上》(美)W.S.默温著;伽禾译 2020
- 《上帝的孤独者 下 托马斯·沃尔夫短篇小说集》(美)托马斯·沃尔夫著;刘积源译 2017
- 《巴黎永远没个完》(美)海明威著 2017
- 《剑桥国际英语写作教程 段落写作》(美)吉尔·辛格尔顿(Jill Shingleton)编著 2019
- 《大学计算机实验指导及习题解答》曹成志,宋长龙 2019
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《大学生心理健康与人生发展》王琳责任编辑;(中国)肖宇 2019
- 《大学英语四级考试全真试题 标准模拟 四级》汪开虎主编 2012
- 《大学英语教学的跨文化交际视角研究与创新发展》许丽云,刘枫,尚利明著 2020
- 《北京生态环境保护》《北京环境保护丛书》编委会编著 2018
- 《复旦大学新闻学院教授学术丛书 新闻实务随想录》刘海贵 2019
- 《大学英语综合教程 1》王佃春,骆敏主编 2015
- 《大学物理简明教程 下 第2版》施卫主编 2020
- 《指向核心素养 北京十一学校名师教学设计 英语 九年级 上 配人教版》周志英总主编 2019