第3版 程式设计语言--设计与实现


第3版 程式设计语言--设计与实现

文章插图
程式设计语言--设计与实现(第3版)【第3版 程式设计语言--设计与实现】《程式设计语言--设计与实现(第3版)》是1998-05清华大学出版社出版的图书 , 作者是普拉特(Ptatt,T.W.) / 等 。
基本介绍作者:普拉特(Ptatt,T.W.)                       /            等
ISBN:9787302028338
页数:654
定价:32.00元
出版社:清华大学出版社
出版时间:1998-05
装帧:平装
内容介绍内容简介本书对用于开发现代程式设计语言的主要模式作了概述 , 着重讨论对现代程式设计极端重要的语言 。作者在前两版基础上进行了全面修订以反映程式设计语言设计的新进展 , 本书通过使用和smalltalk介绍过程型语言和面向对象型语言 , 通过LISP , Prol0g和ML讨论各种程式设计模式 , FORTRAN90和Ad0-95用了新标準 , LISP和Pasca的内容作了更新 。书内对每种重要的程式设计语言都作了充分介绍 , 使读者不需要再购买单种语言的参考资料就可以解决所关心的问题 , 每章后的阅读建议使读者有可能扩大对重要问题的了解 。作品目录Part 1. Concepts1 The Study of Programming Languages1.1 Why Study Programming Languages?1.2 A Short History of Programming Languages1.2.1 Development of Early Languages1.2.2 Role of Programming Languages1.3 What Makes a Good Language?1.3.1 Attributes of a Good Language1.3.2 Application Domains1.3.3 T anguage Standardization1.4 Effects of Environments on Languages1.4.1 Batch-Processing Environments1.4.2 Interactive Environments1.4.3 Embedded System Environments1.4.4 Programming Environments1.4.5 Environment Frameworks1.5 Suggestions for Further Reading1.6 Problems2 Language Design Issues2.1 The Structure and Operation of a Computer2.1.1 The Hardware of the Computer2.1.2 Firmware Computers2.1.3 Translators and Software-Simulated Computers2.2 Virtual Computers and Binding Times2.2.1 Syntax and Semantics2.2.2 Virtual Computers and Language Implementations2.2.3 Hierarchies of Computers2.2.4 Binding and Binding Time2.3 Language Paradigms2.4 Suggestions for Further Reading2.5 Problems3 Language Translation Issues3.1 Programming Language Syntax3.1.1 General Syntactic Criteria3.1.2 Syntactic Elements of a Language3.1.3 Overall Program-Subprogram Structure3.2 Stages in Translation3.2.1 Analysis of the Source Program3.2.2 Synthesis of the Object Program3.3 Formal Translation Models3.3.1 BNF Grammars3.3.2 Finite-State Automata3.3.3 Pushdown Automata3.3.4 Efficient Parsing Algorithms3.3.5 Semantic Modeling3.4 Suggestions for Further Reading3.5 Problems4 Data Types4.1 Properties of Types and Objects4.1.1 Data Objects, Variables, and Constants4.1.2 Data Types4.1.3 Specification of Elementary Data Types4.1.4 Implementation of Elementary Data Types4.1.5 Declarations4.1.6 Type Checking and Type Conversion4.1.7 Assignment and Initialization4.2 Elementary Data Types4.2.1 Numeric Data Types4.2.2 Enumerations4.2.3 Booleans4.2.4 Characters4.2.5 Internationalization4.3 Structured Data Types4.3.1 Structured Data Objects and Data Types4.3.2 Specification of Data Structure Types4.3.3 Implementation of Data Structure Types4.3.4 Declarations and Type Checking for Data Structures4.3.5 Vectors and Arrays4.3.6 Records4.3.7 Lists4.3.8 Character Strings4.3.9 Pointers and Programmer-Constructed Data Objects4.3.10 Sets4.3.11 Executable Data Objects4.3.12 Files and Input-Output4.4 Suggestions for Further Reading4.5 Problems5 Abstraction 1: Encapsulation5.1 Abstract Data Types5.1.1 Evolution of the Data Type Concept5.1.2 Information Hiding5.2 Encapsulation by Subprograms5.2.1 Subprograms as Abstract Operations5.2.2 Subprogram Definition and Invocation5.2.3 Subprogram Definitions as Data Objects5.3 Type Definitions5.3.1 Type Equivalence5.3.2 Type Definitions with Parameters5.4 Storage Management5.4.1 Major Run-Time Elements Requiring Storage5.4.2 Programmer- and System-Controlled Storage Management5.4.3 Static Storage Management5.4.4 Stack-Based Storage Management5.4.5 Heap Storage Management: Fixed-Size Elements5.4.6 Heap Storage Management: Variable-Size Elements5.5 Suggestions for Purther Reading5.6 Problems6 Sequence Control6.1 Implicit and Explicit Sequence Control6.2 Sequencing with Arithmetic Expressions6.2.1 Tree-Structure Representation6.2.2 Execution-Time Representation6.3 Sequencing with Nonarithmetic Expressions6.3.1 Pattern Matching6.3.2 Unification6.3.3 Backtracking6.4 Sequence Control Between Statements6.4.1 Basic Statements6.4.2 Structured Sequence Control6.4.3 Prime Programs6.5 Suggestions for Further Reading6.6 Problems7 Subprogram Control7.1 Subprogram Sequence Control7.1.1 Simple Call-Return Subprograms7.1.2 Recursive Subprograms7.2 Attributes of Data Control7.2.1 Names and Referencing Environments7.2.2 Static and Dynamic Scope7.2.3 Block Structure7.2.4 Local Data and Local Referencing Environments7.3 Shared Data in Subprograms7.3.1 Parameters and Parameter Transmission7.3.2 Explicit Common Environments7.3.3 Dynamic Scope7.3.4 Static Scope and Block Structure7.4 Suggestions for Further Reading7.5 Problems8 Abstraction 11: Inheritance8.1 Abstract Data Types Revisited8.2 Inheritance8.2.1 Derived Classes8.2.2 Methods8.2.3 Abstract Classes8.2.4 Objects and Messages8.2.5 Abstraction Concepts8.3 Polymorphism8.4 Suggestions for Further Reading8.5 Problems9 Advances in Language Design9.1 Variations on Subprogram Control9.1.1 Exceptions and Exception Handlers9.1.2 Coroutines9.1.3 Scheduled Subprograms9.1.4 Nonsequential Execution9.2 Parallel Programming9.2.1 Concurrent Execution9.2.2 Guarded Commands9.2.3 Tasks9.2.4 Synchronization of Tasks9.3 Formal Properties of Languages9.3.1 Chomsky Hierarchy9.3.2 Undecidability9.3.3 Algorithm Complexity9.4 Language Semantics9.4.1 Denotational Semantics9.4.2 Program Verification9.4.3 Algebraic Data Types9.4.4 Resolution9.5 Hardware Developments9.5.1 Processor Design9.5.2 System Design9.6 Software Architecture9.6.1 Persistent Data and Transaction Systems9.6.2 Networks and Client/Server Computing9.6.3 Desktop Publishing9.6.4 Programming Language Trends9.7 Suggestions for Further Reading9.8 ProblemsPart 11. Paradigms and Languages10 Simple Procedural Languages10.1 FORTRAN10.1.1 History10.1.2 Hello World10.1.3 Brief Overview of the Language10.1.4 Data Objects10.1.5 Sequence Control10.1.6 Subprograms and Storage Management10.1.7 Abstraction and Encapsulation10.1.8 Language Evaluation10.2 C10.2.1 History10.2.2 Hello World10.2.3 Brief Overview of the Language10.2.4 Data Objects10.2.5 Sequence Control10.2.6 Subprograms and Storage Management10.2.7 Abstraction and Encapsulation10.2.8 Language Evaluation10.3 Suggestions for Further Reading10.4 Problems11 Block-Structured Procedural Languages11.1 Pascal11.1.1 History11.1.2 Hello World11.1.3 Brief Overview of the Language11.1.4 Data Objects11.1.5 Sequence Control11.1.6 Subprograms and Storage Management11.1.7 Abstraction and Encapsulation11.1.8 Language Evaluation11.2 Suggestions for Further Reading11.3 Problems12 Object-Based Languages12.1 Ada12:1.1 History12.1.2 Hello World12.1.3 Brief Overview of the Language12.1.4 Data Objects12.1.5 Sequence Control12.1.6 Subprograms and Storage Management12.1.7 Abstraction and Encapsulation12.1.8 Language Evaluation12.2 C++12.2.1 History12.2.2 Hello World12.2.3 Brief Overview of the Language12.2.4 Data Objects12.2.5 Sequence Control12.2.6 Subprograms and Storage Management12.2.7 Abstraction and Encapsulation12.2.8 Language Evaluation12.3 Smalltalk12.3,1 History12.3.2 HelloWorld12.3.3 Brief Overview of the Language12.3.4 Data Objects12.3.5 Sequence Control12.3.6 Subprograms and Storage Management12.3.7 Abstraction and Encapsulation12.3.8 Language Evaluation12.4 Suggestions for Further Reading12.5 Problems13 Functional Languages13.1 LISP13.1.1 History13.1.2 HelloWorld13.1.3 Brief Overview of the Language13.1.4 Data Objects13.1.5 Sequence Control13.1.6 Subprograms and Storage Management13.1.7 Abstraction and Encapsulation13.1.8 Language Evaluation13.2 ML13.2.1 History13.2.2 HelloWorld13.2.3 Brief Overview of the Language13.2.4 Data Objects13.2.5 Sequence Control13.2.6 Subprograms and Storage Management13.2.7 Abstraction and Encapsulation13.2.8 Language Evaluation13.3 Suggestions for Further Reading13.4 Problems14 Logic Programming Languages14.1 Prolog14.1.1 History14.1.2 HelloWorld14.1.3 Brief Overview of the Language14.1.4 Data Objects14.1.5 Sequence Control14.1.6 Subprograms and Storage Management14.1.7 Abstraction and Encapsulation14.1.8 Language Evaluation14.2 Suggestions for Purther Reading14.3 ProblemsReferencesIndex