Crafting a Compiler With C (Hardcover)
暫譯: 使用 C 語言編寫編譯器 (精裝版)
Charles N. Fischer, Richard J. LeBlanc Jr.
- 出版商: Benjamin Cummins
- 出版日期: 1991-07-11
- 售價: $5,910
- 貴賓價: 9.5 折 $5,615
- 語言: 英文
- 頁數: 832
- 裝訂: Paperback
- ISBN: 0805321667
- ISBN-13: 9780805321661
-
相關分類:
C 程式語言、Compiler
-
其他版本:
Crafting a Compiler With C (IE-Paperback)
海外代購書籍(需單獨結帳)
買這商品的人也買了...
-
$1,029Fundamentals of Data Structures in C++
-
$1,200$1,176 -
$680$537 -
$2,640$2,508 -
$970Introduction to Algorithms, 2/e
-
$1,150$1,127 -
$600$510 -
$880$695 -
$1,274Computer Architecture: A Quantitative Approach, 3/e(精裝本)
-
$1,029Operating System Concepts, 6/e (Windows XP Update)
-
$860$568 -
$1,030$1,009 -
$650$429 -
$1,920$1,824 -
$780$741 -
$760$600 -
$590$466 -
$690$538 -
$650$618 -
$780$663 -
$720$569 -
$750$638 -
$560$476 -
$390$304 -
$880$695
相關主題
商品描述
Table Of Contents
(Each chapter contains "Exercises".)
Introduction.
What Do Compilers Do?
The Structure of a Compiler.
The Syntax and Semantics of Programming Languages.
Compiler Design and Programming Language Design.
Compiler Classifications.
Influences On Computer Design.
Exercises.
A Simple Compiler.
A Micro Scanner.
The Syntax of Micro.
Recursive Descent Parsing.
Translating Micro.
Exercises.
Scanning--Theory and Practice.
Regular Expressions.
Finite Automata and Scanners.
Using a Scanner Generator.
Practical Considerations.
Translating Regular Expressions Into Finite Automata.
Exercises.
Grammars and Parsing.
Errors in Context-Free Grammars.
Transforming Extended Bnf Grammars.
Parsers and Recognizers.
Grammar Analysis Algorithms.
Exercises.
Ll(1) Grammars and Parsers.
The Ll(1) Parse Table.
Building Recursive Descent Parsers From Ll(1) Tables.
An Ll(1) Parser Driver.
Ll(1) Action Symbols.
Making Grammars Ll(1) / The If-Then-Else Problem in Ll(1) Parsing.
The Llgen Parser Generator.
Properties of Ll(1) Parsers.
Ll(K) Parsing.
Exercises.
Lr Parsing.
Lr Parsers.
Lr(1) Parsing.
Slr(1) Parsing.
Lalr(1).
Calling Semantic Routines in Shift-Reduce Parsers.
Using a Parser Generator.
Optimizing Parse Tables.
Practical Lr(1) Parsers.
Properties of Lr Parsers.
Ll(1) Or Lalr(1), That Is The Question.
Other Shift-Reduce Techniques.
Exercises.
Semantic Processing.
Semantic Processing Techniques.
Intermediate Representations and Code Generation.
Exercises.
Symbol Tables.
Basic Implementation Techniques.
Block-Structured Symbol Tables.
Extensions to Block-Structured Symbol Tables.
Implicit Declarations.
Overloading.
Forward References.
Summary.
Exercises.
Run-Time Storage Organization.
Stack Allocation.
Heap Allocation.
Program Layout in Memory.
Static and Dynamic Chains.
Formal Procedures.
Exercises.
Processing Declarations.
Action Routines for Simple Declarations.
Action Routines for Advanced Features.
Exercises.
Processing Expressions and Data Structure References.
Action Routines for Simple Names, Expressions, and Data Structures.
Action Routines for Advanced Features.
Exercises.
Translating Control Structures.
Loops.
Compiling Exits.
The Case Statement.
Compiling Goto Statements.
Exception Handling.
Short-Circuit Boolean Expressions.
Exercises.
Translating Procedures and Functions.
Passing Parameters to Subprograms.
Processing Subprogram Calls and Parameter Lists.
Subprogram Invocation.
Label Parameters.
Name Parameters.
Exercises.
Attribute Grammars and Multipass Translation.
Tree-Structured Intermediate Representations.
Exercises.
Code Generation and Local Code Optimization.
Register and Temporary Management.
A Simple Code Generator.
Interpretive Code Generation.
Peephole Optimization.
Generating Code From Trees.
Generating Code From Dags.
Code Generator Generators.
Exercises.
Global Optimization.
Optimizing Subprogram Calls.
Loop Optimization.
Global Data Flow Analysis.
Putting it All Together.
Exercises.
Parsing in The Real World.
Syntactic Error Recovery and Repair.
Exercises.
Appendices.
B. Scangen.
C. Llgen User Manual.
D. Lalrgen User Manual.
E. Error-Repair Features of Llgen and Lalrgen.
F. Compiler Development Utilities.
Bibliography.
Supplements
Instructor Supplements
For more information about any of the supplements listed below, use our Rep. Locator to contact your Addison Wesley representative.
- Instructor's Guide / 0-8053-2167-5
商品描述(中文翻譯)
目錄
(每章節包含「練習題」。)
介紹。
編譯器的功能是什麼?
編譯器的結構。
程式語言的語法與語意。
編譯器設計與程式語言設計。
編譯器的分類。
對電腦設計的影響。
練習題。
簡單的編譯器。
微型掃描器。
微型的語法。
遞迴下降解析。
翻譯微型。
練習題。
掃描--理論與實踐。
正規表達式。
有限自動機與掃描器。
使用掃描器生成器。
實際考量。
將正規表達式轉換為有限自動機。
練習題。
文法與解析。
上下文無關文法中的錯誤。
轉換擴展的 Bnf 文法。
解析器與識別器。
文法分析演算法。
練習題。
Ll(1) 文法與解析器。
Ll(1) 解析表。
從 Ll(1) 表構建遞迴下降解析器。
Ll(1) 解析器驅動程式。
Ll(1) 行動符號。
使文法成為 Ll(1) / Ll(1) 解析中的 If-Then-Else 問題。
Llgen 解析器生成器。
Ll(1) 解析器的特性。
Ll(K) 解析。
練習題。
Lr 解析。
Lr 解析器。
Lr(1) 解析。
Slr(1) 解析。
Lalr(1)。
在移位-歸約解析器中調用語意例程。
使用解析器生成器。
優化解析表。
實用的 Lr(1) 解析器。
Lr 解析器的特性。
Ll(1) 或 Lalr(1),這是個問題。
其他移位-歸約技術。
練習題。
語意處理。
語意處理技術。
中間表示與代碼生成。
練習題。
符號表。
基本實現技術。
區塊結構符號表。
對區塊結構符號表的擴展。
隱式聲明。
重載。
前向引用。
總結。
練習題。
執行時存儲組織。
堆疊分配。
堆分配。
程式在記憶體中的佈局。
靜態與動態鏈。
正式程序。
練習題。
處理聲明。
簡單聲明的行動例程。
進階特性的行動例程。
練習題。
處理表達式與資料結構引用。
簡單名稱、表達式和資料結構的行動例程。
進階特性的行動例程。
練習題。
翻譯控制結構。
迴圈。
編譯退出。
案例語句。
編譯 Goto 語句。
例外處理。
短路布林表達式。
練習題。
翻譯程序與函數。
將參數傳遞給子程序。
處理子程序調用與參數列表。
子程序調用。
標籤參數。
名稱參數。
練習題。
屬性文法與多遍翻譯。
樹狀中間表示。
練習題。
代碼生成與局部代碼優化。
暫存器與臨時管理。
簡單的代碼生成器。
解釋性代碼生成。
窺孔優化。
從樹生成代碼。
從 DAG 生成代碼。
代碼生成器生成器。
練習題。
全局優化。
優化子程序調用。
迴圈優化。
全局資料流分析。
將所有內容整合在一起。
練習題。
現實世界中的解析。
語法錯誤恢復與修復。
練習題。
附錄。
B. Scangen。
C. Llgen 使用手冊。
D. Lalrgen 使用手冊。
E. Llgen 和 Lalrgen 的錯誤修復功能。
F. 編譯器開發工具。
參考文獻。
補充資料
教師補充資料
如需有關以下任何補充資料的更多信息,請使用我們的 代表定位器 聯繫您的 Addison Wesley 代表。
-
教師指南 / 0-8053-2167-5