Building Parsers With Java (Paperback)
暫譯: 使用 Java 建立解析器 (平裝本)
Steven John Metsker
- 出版商: Addison Wesley
- 出版日期: 2001-04-05
- 售價: $1,800
- 貴賓價: 9.5 折 $1,710
- 語言: 英文
- 頁數: 371
- 裝訂: Paperback
- ISBN: 0201719622
- ISBN-13: 9780201719628
-
相關分類:
Java 程式語言
立即出貨(限量) (庫存=6)
買這商品的人也買了...
-
$725Java Server and Servlets: Building Portable Web Applications (Paperback)
-
$480$379 -
$675Java Look and Feel Design Guidelines: Advanced Topics (Paperback)
-
$825Applied Java Patterns (Paperback)
-
$1,730$1,644 -
$1,274Computer Architecture: A Quantitative Approach, 3/e(精裝本)
-
$1,029Operating System Concepts, 6/e (Windows XP Update)
-
$420$336 -
$560$476 -
$399CCNA Self-Study: CCNA Basics (CCNAB) (Hardcover)
-
$590$466 -
$720$569 -
$750$638 -
$480$379 -
$399Advanced Java Game Programming (Paperback)
-
$580$452 -
$580$458 -
$650$507 -
$680$537 -
$850$672 -
$480$379 -
$1,267Java 8 Lambdas: Pragmatic Functional Programming (Paperback)
-
$1,880$1,786 -
$530$419 -
$580$551
相關主題
商品描述
Description
Compiler Construction, Java-Intermediate Programming.
Features
Table Of Contents
(NOTE: Each chapter concludes with a Summary.)
Foreword.
Preface.
Using the Toolkit Code and the Sample Code.
Contents of the CD.
Applying the Code on the CD.
Hello World.
Coding Style.
Related Books.
Theoretical Context.
Yacc and Lex and Bison and Flex.
About the Cover.
Acknowledgments.
1. Introduction.
What Is a Language?
The Organization of This Book.
2. The Elements of a Parser.
Parser Collaborations.
Assemblies.
Token and Character Assemblies.
Tokenizing.
Default and Custom Tokenization.
Assembly Appearance.
Assembly Summary.
The Parser Hierarchy.
Terminal Parsers.
Word Terminals.
Num Terminals.
Literals.
Caseless Literals.
Symbols.
Quoted Strings.
Composite Parsers.
Alternation and Sequence.
Composing a Parser.
The Empty Parser.
Parser Summary.
Assemblers.
Assemblers Work On Assemblies.
Elements Above.
3. Building a Parser.
Deciding to Tokenize.
Designing Assemblers.
Using an Assembly's Stack.
Assemblers Plug In to Parser Composites.
A Language to Plug In To: Minimath.
Calculating a Minimath Result.
The Minimath Parser as an Object.
Building a Target.
Making a Target Cloneable.
Grammars: A Shorthand for Parsers.
Top-Down Grammar Design.
Example: Designing a Grammar for a Track Robot.
Checking for Left Recursion and Cycles.
Translating a Grammar to Code.
Translate Sequences.
Translate Alternations.
Translate Terminals.
Create a Subparser for Each Rule.
Option 1: Declare Each Subparser.
Option 2: Arrange Subparsers as Methods.
Add a Start Method.
Completing a Parser.
Design the Target.
Plug In Assemblers.
4. Testing a Parser.
Random Testing.
Terminal Ambiguity.
Special Tokenizers and Targets.
5. Parsing Data Languages.
A Data Language Example.
A Coffee Grammar.
A Tokenizing Problem.
Coffee Assemblers.
Translating the Coffee Grammar to Code.
Data Language Parser Summary.
Parsers with XML.
The Evolution of XML.
An XML Example.
Helpers.
6. Transforming a Grammar.
Ensuring Correct Associativity.
Eliminating Left Recursion.
Ensuring Proper Precedence.
Eliminating Parser Class Loops.
7. Parsing Arithmetic.
Conventional Precedence.
Conventional Associativity.
An Arithmetic Grammar.
Arithmetic Assemblers.
An Arithmetic Grammar Parser.
8. Parsing Regular Expressions.
Building a Regular Expression Parser.
A Regular Expression Grammar.
Regular Expression Assemblers.
A Regular Expression Parser.
9. Advanced Tokenizing.
Acquiring a Tokenizer.
Tokenizers in Standard Java.
A Token Class.
A Tokenizer Class.
Tokenizer Lookup Tables.
Tokenizer States.
NumberState.
SlashState.
SymbolState.
WhitespaceState.
WordState.
Setting a Tokenizer's Source.
Customizing a Tokenizer.
The TokenStringSource Utility.
Changing Which State the Tokenizer Enters.
Adding a State.
Token Strings.
10. Matching Mechanics.
Parser Matching.
Repetition Matching.
Collection Parsers.
Sequence Matching.
Alternation Matching.
Empty Matching.
Terminal Matching.
Character Terminals.
Terminals Summary.
Parser Matching Utilities.
11. Extending the Parser Toolkit.
New Terminals.
New Token Types.
New Parser Features.
Tracks in Action.
12. Engines.
The Role of Engines.
Building Blocks.
Variables.
Unification.
Facts.
Programs and Queries.
Proofs.
Rules.
Additional Features of the Engine.
Arithmetic.
Evaluation.
Not.
Anonymous Variables.
Lists.
13. Logic Programming.
Building Blocks.
Variables.
A Logikus Interactive Development Environment.
Unification.
Comparisons.
Rules, Axioms, and Programs.
Proofs.
Variable Joins.
Backtracking.
Looping and Halting.
Gateways.
Additional Features of Logikus.
Evaluations.
Negation.
Not Dangerous.
Anonymous Variables.
Lists.
List Applications.
Prefix.
Suffix.
Permutation.
Modeling Transitive and Symmetric Relations.
Example Applications.
Epidemic.
Generate and Test.
Generate and Test in Java.
Altitude Bands.
14. Parsing a Logic Language.
A Logikus Grammar.
Logikus Programs.
Logikus Assemblers.
The Logikus Interactive Development Environment.
15. Parsing a Query Language.
A Sample Database.
Jaql.
Jaql Joins.
Jaql Expressions.
Building a Query Language Environment.
Translating User Queries to Engine Queries.
Where Clauses.
Projection.
A Query Builder.
A Speller.
Jaql Grammar.
Creating the Jaql Parser.
Jaql Assemblers.
The Jaql User Environment.
Tracks.
Handling Abject Failure.
16. Parsing an Imperative Language.
Sling.
Sling Programming.
Adding Slings.
Plotting Time.
Line Effects.
Adding Lines.
Cartesian Plots.
Cartesians as Points.
Polar Plots.
For Loops.
Sliders.
A Composite Example.
More Plots.
The Elements of Sling>
Building the Sling Environment.
Building Commands.
A Command Example.
AssignmentCommand.
CommandSequence.
ForCommand.
IfCommand.
NullCommand.
PrintlnCommand.
ReadCommand.
WhileCommand.
Commands Summary.
Sling Commands.
AssignFunctionCommand.
Building Runtime Functions.
Umbrella Types.
Runtime Functions in Sling.
Execution Phases.
Prototyping.
Function Evaluation.
Sling Functions.
Abs, Ceil, Cos, Floor, Sin, and Tan.
Arithmetic.
Cartesian.
Point.
Polar.
Random.
Scale.
Sling.
Slider.
T.
Variable.
Sling Target.
A Sling Grammar.
Sling Assemblers.
ForAssembler.
FunctionAssembler.
NegativeAssembler.
NumAssembler.
PiAssembler.
PlotAssembler.
ScaleAssembler.
SliderAssembler.
VariableAssembler.
A Sling Parser.
Assembler Placement.
17. Directions.
Other Essential Reading.
Keep Going.
Create New Languages for Children.
Explore Languages as Human Interfaces.
Improve Languages as Receptacles for Human Thought.
Choose Your Own Direction.
Appendix A: UML Twice Distilled.
Class Relationships.
Interfaces.
Objects.
References.
Index.
商品描述(中文翻譯)
描述
適合的課程
編譯器建構、Java 中級程式設計。
特點
目錄
(注意:每章結尾都有摘要。)
前言。
序言。
誰應該閱讀本書。
使用工具包代碼和示例代碼。
CD 的內容。
應用 CD 上的代碼。
Hello World。
編碼風格。
相關書籍。
理論背景。
Yacc、Lex、Bison 和 Flex。
關於封面。
致謝。
1. 介紹。
解析器的角色。
什麼是語言?
本書的組織。
2. 解析器的元素。
什麼是解析器?
解析器協作。
組合。
組合類接口。
標記和字符組合。
標記化。
默認和自定義標記化。
組合外觀。
組合摘要。
解析器層次結構。
解析器的組成。
終端解析器。
使用終端。
單詞終端。
數字終端。
字面量。
不區分大小寫的字面量。
符號。
引用字符串。
複合解析器。
重複。
交替和序列。
組合解析器。
空解析器。
解析器摘要。
組合器。
解析器使用組合器。
組合器在組合上工作。
以上元素。
3. 建立解析器。
設計概述。
決定標記化。
設計組合器。
解析器、組合器和組合的協作。
使用組合的堆疊。
組合器插入解析器組合。
要插入的語言:Minimath。
計算 Minimath 結果。
Minimath 解析器作為對象。
建立目標。
使目標可克隆。
文法:解析器的速記。
標準文法速記。
自上而下的文法設計。
示例:為追蹤機器人設計文法。
追蹤機器人文法。
檢查左遞歸和循環。
將文法轉換為代碼。
轉換引用字符串。
轉換序列。
轉換交替。
轉換終端。
為每個規則創建子解析器。
選項 1:聲明每個子解析器。
選項 2:將子解析器安排為方法。
添加開始方法。
完成解析器。
控制推送。
設計目標。
插入組合器。
4. 測試解析器。
功能測試。
隨機測試。
模糊測試。
終端模糊。
特殊標記器和目標。
5. 解析數據語言。
數據語言的角色。
數據語言示例。
咖啡文法。
標記化問題。
咖啡組合器。
咖啡組合器代碼。
將咖啡文法轉換為代碼。
數據語言解析器摘要。
與 XML 的解析器。
XML 的簡史。
XML 的演變。
XML 示例。
輔助工具。
ShowCoffeeXML。
6. 轉換文法。
文法轉換的角色。
確保正確的結合性。
消除左遞歸。
一個算法。
確保正確的優先級。
消除解析器類循環。
7. 解析算術。
建立算術解析器。
常規符號。
常規優先級。
常規結合性。
算術文法。
算術組合器。
組合器代碼。
算術文法解析器。
8. 解析正則表達式。
正則表達式的角色。
建立正則表達式解析器。
正則表達式文法。
正則表達式組合器。
組合器代碼。
正則表達式解析器。
9. 高級標記化。
標記器的角色。
獲取標記器。
標準 Java 中的標記器。
標記類。
標記器類。
標記器查找表。
標記器狀態。
QuoteState。
NumberState。
SlashState。
SymbolState。
WhitespaceState。
WordState。
設置標記器的來源。
自定義標記器。
TokenStringSource 實用工具。
自定義狀態。
更改標記器進入的狀態。
添加狀態。
標記字符串。
10. 匹配機制。
介紹。
解析器匹配。
重複匹配。
集合解析器。
序列匹配。
交替匹配。
空匹配。
終端匹配。
標記終端。
字符終端。
終端摘要。
解析器匹配實用工具。
11. 擴展解析器工具包。
新類型解析器的角色。
新終端。
新標記類型。
新解析器功能。
一個錯誤處理解析器。
行動中的追蹤。
12. 引擎。
引擎與解釋器。
引擎的角色。
構建塊。
結構。
變量。
統一。
事實。
程序和查詢。
證明。
回溯。
規則。
引擎的附加功能。
比較。
算術。
評估。
非。
匿名變量。
列表。
13. 邏輯程式設計。
邏輯語言的角色。
構建塊。
結構。
變量。
Logikus 互動開發環境。
統一。
比較。
規則、公理和程序。
證明。
變量範圍。
變量聯接。
回溯。
循環和停止。
網關。
Logikus 的附加功能。
註解。
評估。
否定。
不危險。
匿名變量。
列表。
點表示法。
列表應用。
成員。
前綴。
後綴。
排列。
建模傳遞和對稱關係。
對稱關係。
示例應用。
授權程序。
流行病。
生成和測試。
在 Java 中生成和測試。
高度帶。
14. 解析邏輯語言。
建立邏輯語言環境。
Logikus 文法。
Logikus 中的註解。
Logikus 程序。
Logikus 組合器。
Logikus 互動開發環境。
Logikus 的外觀。
15. 解析查詢語言。
查詢語言的角色。
示例數據庫。
事實、對象和行。
Jaql。
Jaql 語法。
Jaql 聯接。
Jaql 表達式。
建立查詢語言環境。
將用戶查詢轉換為引擎查詢。
自然聯接。
Where 子句。
投影。
查詢生成器。
拼寫檢查器。
Jaql 文法。
創建 Jaql 解析器。
Jaql 組合器。
Jaql 用戶環境。
異常處理。
追蹤。
處理對象失敗。
16. 解析命令式語言。
命令式語言的角色。
Sling。
Sling 程式設計。
基本 Sling。
添加 Sling。
繪製時間。
線效果。
添加線。
笛卡爾圖。
笛卡爾作為點。
極坐標圖。
For 循環。
滑塊。
複合示例。
更多圖。
Sling 的元素。
建立 Sling 環境。
建立命令。
命令示例。
AssignmentCommand。
CommandSequence。
ForCommand。
IfCommand。
NullCommand。
PrintlnCommand。
ReadCommand。
WhileCommand。
命令摘要。
Sling 命令。
AddFunctionCommand。
AssignFunctionCommand。
建立運行時函數。
函數包裝。
傘類型。
Sling 中的運行時函數。
執行階段。
原型設計。
函數評估。
Sling 函數。
SlingFunction。
Abs、Ceil、Cos、Floor、Sin 和 Tan。
算術。
笛卡爾。
點。
極坐標。
隨機。
縮放。
Sling。
滑塊。
T。
變量。
Sling 目標。
Sling 文法。
Sling 組合器。
AssignmentAssembler。
ForAssembler。
FunctionAssembler。
NegativeAssembler。
NumAssembler。
PiAssembler。
PlotAssembler。
ScaleAssembler。
SliderAssembler。
VariableAssembler。
Sling 解析器。
保留字。
組合器位置。
17. 方向。