• 编译原理 技术与工具
21年品牌 40万+商家 超1.5亿件商品

编译原理 技术与工具

21.94 2.8折 79 九五品

仅1件

北京通州
认证卖家担保交易快速发货售后保障

作者(美)阿霍(Aho,A.V.) 等著

出版社人民邮电出版社

ISBN9787115172655

出版时间2008-02

版次1

装帧平装

开本16开

纸张胶版纸

页数1009页

字数99999千字

定价79元

上书时间2024-12-15

纵列風

已实名 已认证 进店 收藏店铺

   商品详情   

品相描述:九五品
商品描述
基本信息
书名:编译原理 技术与工具
定价:79.00元
作者:(美)阿霍(Aho,A.V.) 等著
出版社:人民邮电出版社
出版日期:2008-02-01
ISBN:9787115172655
字数:1240000
页码:1009
版次:1
装帧:平装
开本:16开
商品重量:
编辑推荐
经典“龙”书的这一个新版本经过了全面的修订,包含了编译技术中的新进展。这本书全面地介绍了编译器的设计,并继续强调编译技术在软件和开发中的广泛应用。本书的前半部分被设计用于本科编译课程,而后半部分可以用于着重于代码优化的研究生课程。
内容提要
作为编译器设计的教程,本书重点主要放在解决设计语言翻泽器过程中普遍需要面对的一些问题上,而并不考虑源语言或者目标机器。本书共 12章。章是一些关于学习动机的资料,同时也给出了一些关于计算机体系结构和程序设计语言原理的背景知识。第二章开发了一个缩微的编译器,并介绍了很多重要的概念,这些概念将在后面的各个章节中深入介绍。这个编译器本身在附录中给出。第三章讨论了词法分析、正则表达式、有穷状态自动机和词法分析器的生成工具,这些内容是各种正文处理的基础。第四章讨论了主流的语法分析方法,包括自顶向下方法(递归下降法, LL技术)和自底向上方法(LR技术和它的变体)。第五章介绍了语法制导定义和语法制导翻译的基本思想。第六章介绍了如何使用第五章中的理论为一个典型的程序设计语言生成中间代码。第七章讨论了运行时刻环境,主要是运行时刻栈的管理和垃圾收集机制。第八章介绍了关于目标代码生成的内容,主要讨论了基本块的构造,从表达式和基本块生成代码的方法,以及寄存器分配技术。第九章介绍了代码优化技术,包括流图、数据流分析框架以及求解这些框架的迭代算法。第十章讨论了指令级优化。该章的重点是从小段指令代码中抽取并行性,并在那些可以同时做多件事情的单处理器上调度这些指令。第十一章讲的是大规模并行的检测和利用。这章的重点是数值计算代码,这些代码具有对多维数组进行遍历的紧致循环。第十二章介绍的是关于过程间分析技术的内容,讨论了指针分析、别名和数据流分析,这些分析中都考虑了到达代码中某个给定点时的过程调用序列。  本书可作为高校计算机专业本科和研究生编译原理的教科书,也可供从事计算机软件开发的人员参考。
目录
1 Introduction 1 1.1 Language Processors 11.1.1 Exercises for Section1.1 31.2 The Structure of a Compiler 41.2.1 Lexical Analysis 51.2.2 Syntax Analysis 81.2.3 Semantic Analysis 81.2.4 Intermediate Code Generation 91.2.5 Code Optimization 101.2.6 Code Generation 101.2.7 Symbol-Table Management 111.2.8 The Grouping of Phasesin to Passes 111.2.9 Compiler-Construction Tools 121.3 The Evolution of Programming Languages 121.3.1 The Moveto Higher-level Languages 131.3.2 Impactson Compilers 141.3.3 Exercises for Section1.3 141.4 The Science of Building a Compiler 151.4.1 Modelingin Compiler Design and Implementation 151.4.2 The Science of Code Optimization 151.5 Applications of Compiler Technology 171.5.1 Implementation of High-Level Programming Languages 171.5.2 Optimizations for Computer Architectures 191.5.3 Design of New Computer Architectures 211.5.4 Program Translations 221.5.5 Software Productivity Tools 231.6 Programming Language Basics 251.6.1 The Static/Dynamic Distinction 251.6.2 Environmentsand States 261.6.3 Static Scopeand Block Structure 281.6.4 Explicit Access Control 311.6.5 Dynamic Scope 311.6.6 Parameter Passing Mechanisms 331.6.7 Aliasing 351.6.8 Exercises for Section1.6 351.7 Summary of Chapter1 361.8 References for Chapter1 382 A Simple Syntax-Directed Translator 392.1 Introduction 402.2 Syntax Definition 422.2.1 Definition of Grammars 422.2.2 Derivations 442.2.3 Parse Trees 452.2.4 Ambiguity 472.2.5 Associativity of Operators 482.2.6 Precedence of Operators 482.2.7 Exercises for Section 2.2 512.3 Syntax-Directed Translation 522.3.1 Postfix Notation 532.3.2 Synthesized Attributes 542.3.3 Simple Syntax-Directed Definitions 562.3.4 Tree Traversals 562.3.5 Translation Schemes 572.3.6 Exercises for Section2.3 602.4 Parsing 602.4.1 Top-Down Parsing 612.4.2 Predictive Parsing 642.4.3 When to Use -Productions 652.4.4 Designinga Predictive Parser 662.4.5 Left Recursion 672.4.6 Exercises for Section 2.4 682.5 A Translator for Simple Expressions 682.5.1 Abstract and Concrete Syntax 692.5.2 Adaptingthe Translation Scheme 702.5.3 Procedures for the Nonterminals 722.5.4 Simplifying the Translator 732.5.5 The Complete Program 742.6 Lexical Analysis 762.6.1 Removalof White Spaceand Comments 772.6.2 Reading A head 782.6.3 Constants 782.6.4 Recognizing Keywords and Identifiers 792.6.5 A Lexical Analyzer 812.6.6 Exercises for Section 2.6 842.7 Symbol Tables 852.7.1 Symbol Table Per Scope 862.7.2 The Use of Symbol Tables 892.8 Intermediate Code Generation 912.8.1 Two Kinds of Intermediate Representations 912.8.2 Constructionof Syntax Trees 922.8.3 Static Checking 972.8.4 Three-Address Code 992.8.5 Exercises for Section 2.8 1052.9 Summary of Chapter 2 1053 Lexical Analysis 1093.1 The Role of the Lexical Analyzer 1093.1.1 Lexical Analysis Versus Parsing 1103.1.2 Tokens,Patterns,and Lexemes 1113.1.3 Attributes for Tokens 1123.1.4 Lexical Errors 1133.1.5 Exercises for Section 3.1 1143.2 Input Buffering 1153.2.1 Buffer Pairs 1153.2.2 Sentinels 1163.3 Specification of Tokens 1163.3.1 Stringsand Languages 1173.3.2 Operationson Languages 1193.3.3 Regular Expressions 1203.3.4 Regular Definitions 1233.3.5 Extensionsof Regular Expressions 1243.3.6 Exercises for Section 3.3 1253.4 Recognitionof Tokens 1283.4.1 Transition Diagrams 1303.4.2 Recognition of Reserved Words and Identifiers 1323.4.3 Completion of the Running Example 1333.4.4 Architecture of a Transition-Diagram-Based Lexical Analyzer 1343.4.5 Exercises for Section 3.4 1363.5 The Lexical-Analyzer Generator Lex 1403.5.1 Use of Lex 1403.5.2 Structure of Lex Programs 1413.5.3 Confiict Resolutionin Lex 1443.5.4 The Lookahead Operator 1443.5.5 Exercises for Section 3.5 1463.6 Finite Automata 1473.6.1 Nondeterministic Finite Automata 1473.6.2 Transition Tables 1483.6.3 Acceptance of Input Stringy Automata 1493.6.4 Deterministic Finite Automata 1493.6.5 Exercises for Section 3.6 1513.7 From Regular Expressions to Automata 1523.7.1 Conversionof an NFA to a DFA 1523.7.2 Simulation of an NFA 1563.7.3 Efficiency of NFA Simulation 1573.7.4 Construction of an NFA from a Regular Expression 1593.7.5 Efficiency of String-Processing Algorithms 1633.7.6 Exercises for Section 3.7 1663.8 Design of a Lexical-Analyzer Generator 1663.8.1 The Structure of the Generated Analyzer 1673.8.2 Pattern Matching Based on NFA's 1683.8.3 DFA's for Lexical Analyzers 1703.8.4 Implementing the Lookahead Operator 1713.8.5 Exercises for Section 3.8 1723.9 Optimization of DFA-Based Pattern Matchers 1733.9.1 Important States of an NFA 1733.9.2 Functions Computed From the Syntax Tree  1753.9.3 Computing nullable,firstpos,and lastpos 1763.9.4 Computing followpos 1773.9.5 Converting a Regular Expression Directly to a DFA 1793.9.6 Minimizing the Number of States of a DFA 1803.9.7 State Minimization in Lexical Analyzers 1843.9.8 Trading Time for Space in DFA Simulation 1853.9.9 Exercises for Section 3.9 1863.10 Summary of Chapter 3 1873.11 References for Chapter 3 1894 Syntax Analysis 1914.1 Introduction 1924.1.1 The Roleof the Parser 1924.1.2 Representative Grammars 1934.1.3 Syntax Error Handling 1944.1.4 Error-Recovery Strategies 1954.2 Context-Free Grammars 1974.2.1 The Formal Definition of a Context-Free Grammar 1974.2.2 Notational Conventions 1984.2.3 Derivations 1994.2.4 Parse Trees and Derivations 2014.2.5 Ambiguity 2034.2.6 Verifying the Language Generated by a Grammar 2044.2.7 Context-Free Grammars Versus Regular Expressions 2054.2.8 Exercises for Section 4.2 2064.3 Writing a Grammar 2094.3.1 Lexical Versus Syntactic Analysis 2094.3.2 Eliminating Ambiguity 2104.3.3 Elimination of LeftRecursion 2124.3.4 Left Factoring 2144.3.5 Non-Context-FreeLanguage Constructs 2154.3.6 Exercises for Section 4.3 2164.4 Top-Down Parsing 2174.4.1 Recursive-Descent Parsing 2194.4.2 FIRST and FOLLOW 2204.4.3 LL(1) Grammars 2224.4.4 Nonrecursive Predictive Parsing 2264.4.5 Error Recovery in Predictive Parsing 2284.4.6 Exercises for Section 4.4 2314.5 Bottom-Up Parsing 2334.5.1 Reductions 2344.5.2 Handle Pruning 2354.5.3 Shift-Reduce Parsing 2364.5.4 Conflicts During Shift-Reduce Parsing 2384.5.5 Exercises for Section 4.5 2404.6 Introduction to LR Parsing:Simple LR 2414.6.1 Why LR Parsers 2414.6.2 Items and the LR(0) Automaton 2424.6.3 The LR-Parsing Algorithm 2484.6.4 Constructing SLR-Parsing Tables 2524.6.5 Viable Prefixes 2564.6.6 Exercises for Section 4.6 2574.7 More Powerful LR Parsers 2594.7.1 Canonical LR(1) Items 2604.7.2 Constructing LR(1) Sets of Items 2614.7.3 Canonical LR(1) Parsing Tables 2654.7.4 Constructing LALR Parsing Tables 2664.7.5 Efficient Construction of LALR Parsing Tables 2704.7.6 Compaction of LR Parsing Tables 2754.7.7 Exercises for Section 4.7 2774.8 Using Ambiguous Grammars 2784.8.1 Precedenceand Associativity to Resolve Confiicts 2794.8.2 The “Dangling-Else” Ambiguity 2814.8.3 Error Recoveryin LR Parsing 2834.8.4 Exercises for Section 4.8 2854.9 Parser Generators 2874.9.1 The Parser Generator Yacc 2874.9.2 Using Yacc with Ambiguous Grammars 2914.9.3 Creating Yacc Lexical Analyzers with Lex 2944.9.4 Error Recovery in Yacc 2954.9.5 Exercises for Section 4.9 2974.10 Summary of Chapter 4 2974.11 References for Chapter 4 3005 Syntax-Directed Translation 3035.1 Syntax-Directed Definitions 3045.1.1 Inheritedand Synthesized Attributes 3045.1.2 Evaluating an SDD at the Nodes of a Parse Tree 3065.1.3 Exercises for Section 5.1 3095.2 Evaluation Orders for SDD's 3105.2.1 Dependency Graphs 3105.2.2 Ordering the Evaluation of Attributes 3125.2.3 S-Attributed Definitions 3125.2.4 L-Attributed Definitions 3135.2.5 Semantic Rules with Controlled Side Effects 3145.2.6 Exercises for Section 5.2 3175.3 Applications of Syntax-Directed Translation 3185.3.1 Construction of Syntax Trees 3185.3.2 The Structure of a Type 3215.3.3 Exercises for Section 5.3 3235.4 Syntax-Directed Translation Schemes 3245.4.1 Postfix Translation Schemes 3245.4.2 Parser-Stack Implementation of Postfix SDT's 3255.4.3 SDT's With Actions Inside Productions 3275.4.4 Eliminating Left Recursion From SDT's 3285.4.5 SDT's for L-Attributed Definitions 3315.4.6 Exercises for Section 5.4 3365.5 Implementing L-Attributed SDD's 3375.5.1 Translation During Recursive-Descent Parsing 3385.5.2 On-The-Fly Code Generation 3405.5.3 L-Attributed SDD's and LL Parsing 3435.5.4 Bottom-Up Parsing of L-Attributed SDD's 3485.5.5 ExercisesforSection5.5 3525.6 Summary of Chapter 5 3535.7 References for Chapter 5 3546 Intermediate-Code Generation 3576.1 Variants of Syntax Trees 3586.1.1 Directed Acyclic Graphs for Expressions 3596.1.2 The Value-Number Method for Constructing DAG's 3606.1.3 Exercises for Section 6.1 3626.2 Three-Address Code 3636.2.1 Addressesand Instructions 3646.2.2 Quadruples 3666.2.3 Triples 3676.2.4 Static Single-Assignment Form 3696.2.5 Exercises for Section 6.2 3706.3 Types and Declarations 3706.3.1 Type Expressions 3716.3.2 Type Equivalence 3726.3.3 Declarations 3736.3.4 Storage Layout for Local Names 3736.3.5 Sequences of Declarations 3766.3.6 Fieldsin Records and Classes 3766.3.7 Exe

—  没有更多了  —

以下为对购买帮助不大的评价

此功能需要访问孔网APP才能使用
暂时不用
打开孔网APP