skip to content
Algorithms for compiler design Preview this item
ClosePreview this item
Checking...

Algorithms for compiler design

Author: O G Kakde
Publisher: Hingham, Mass. : Charles River Media, 2003.
Series: Electrical and computer engineering series.
Edition/Format:   Print book : EnglishView all editions and formats
Rating:

(not yet rated) 0 with reviews - Be the first.

Subjects
More like this

Find a copy in the library

&AllPage.SpinnerRetrieving; Finding libraries that hold this item...

Details

Document Type: Book
All Authors / Contributors: O G Kakde
ISBN: 1584501006 9781584501008
OCLC Number: 51737123
Notes: Includes index.
Description: xiii, 334 pages : illustrations ; 24 cm.
Contents: 1. Introduction --
1.1. What is a Compiler? --
1.2. What is a Cross-Compiler? --
1.3. Compilation --
1.3.1. Lexical Analysis Phase --
1.4. Regular Expression Notification/Finite Automata Definitions --
1.5. Relations --
1.5.1. Properties of the Relation --
2. Finite Automata and Regular Expressions --
2.1. Finite Automata --
2.2. Non-Deterministic Finite Automata --
2.2.1. Acceptance of Strings by Non-Deterministic Finite Automata --
2.3. Transforming NFA to DFA --
2.4. The NFA with [set membership]-Moves --
2.4.1. Algorithms for Finding [set membership]-Closure (q) --
2.5. The NFA with [set membership]-Moves to the DFA --
2.6. Minimization/Optimization of a DFA --
2.6.1. Algorithm to Detect Unreachable States --
2.6.2. Algorithm for Detection of Dead States --
2.7. Examples of Finite Automata Construction --
2.8. Regular Sets and Regular Expressions --
2.8.1. Regular Sets --
2.8.2. Regular Expression --
2.9. Obtaining the Regular Expression from the Finite Automata --
2.10. Lexical Analyzer Design --
2.10.1. Format of the Input or Source File of Lex --
2.11. Properties of Regular Sets --
2.12. Equivalence of Two Automatas --
3. Context-Free Grammar and Syntax Analysis --
3.1. Syntax Analysis --
3.2. Context-Free Grammar --
3.2.1. Derivation --
3.2.2. Standard Notation --
3.2.3. Derivation Tree or Parse Tree --
3.2.4. Reduction of Grammar --
3.2.5. Useless Grammar Symbols --
3.2.6. [set membership]-Productions and Nullable Nonterminals --
3.2.7. Eliminating [set membership]-Productions --
3.2.8. Eliminating Unit Productions --
3.2.9. Eliminating Left Recursion --
3.3. Regular Grammar --
3.4. Right Linear and Left Linear Grammar --
3.4.1. Right Linear Grammar --
3.4.2. Left Linear Grammar --
4. Top-Down Parsing --
4.1. Top-Down Parsing --
4.2. Implementation --
4.3. The Predictive Top-Down Parser --
4.3.1. Implementation of a Table-Driven Predictive Parser --
4.3.2. Examples --
5. Bottom-Up Parsing --
5.1. What is Bottom-Up Parsing? --
5.2. A Handle of a Right Sentential Form --
5.3. Implementation --
5.4. The LR Parser --
5.4.1. Augmented Grammar --
5.4.2. An Algorithm for Finding the Canonical Collection of Sets of LR(0) Items --
5.4.3. Construction of a Parsing Action [vertical bar] Goto Table for an SLR(1) Parser --
5.4.4. An Algorithm for Finding the Canonical Collection of Sets of LR(1) Items --
5.4.5. Construction of the Action [vertical bar] Goto Table for the LR(1) Parser --
5.4.6. Construction of the LALR Parsing Table --
5.4.7. Parser Conflicts --
5.4.8. Handling Ambiguous Grammars --
5.5. Data Structures for Representing Parsing Tables --
5.7. Why LR Parsing is Attractive --
5.8. Examples --
6. Syntax-Directed Definitions and Translations --
6.1. Specification of Translations --
6.2. Implementation of the Translations Specified by Syntax-Directed Definitions --
6.3. L-Attributed Definitions --
6.4. Syntax-Directed Translation Schemes --
6.5. Intermediate Code Generation --
6.6. Representing Three-Address Statements --
6.7. Syntax-Directed Translation Schemes to Specify the Translation of Various Programming Language Constructs --
6.7.1. Arithmetic Expressions --
6.7.2. Boolean Expressions --
6.7.3. Short-Circuit Code for Logical Expressions --
And --
Or --
Not --
If-Then-Else --
If-Then --
While --
Do-While --
Repeat-Until --
For --
6.8. Implementation of Increment and Decrement Operators --
6.9. The Array Reference --
6.10. Switch/Case --
6.11. The Procedure Call --
6.12. Examples --
7. Symbol Table Management --
7.1. The Symbol Table --
7.2. Implementation --
7.3. Entering Information into the Symbol Table --
7.4. Where Should Names be Held? --
7.5. Information About the Runtime Storage Location --
7.6. Various Approaches to Symbol Table Organization --
7.6.1. The Linear List --
7.6.2. Search Trees --
7.6.3. Hash Tables --
7.7. Representing the Scope Information in the Symbol Table --
8. Storage Management --
8.1. Storage Allocation --
8.2. Activation of the Procedure and the Activation Record --
8.3. Static Allocation --
8.4. Stack Allocation --
8.4.1. The Call and Return Sequence --
8.4.2. Access to Nonlocal Names --
8.4.3. Setting Up the Access Link --
9. Error Handling --
9.1. Error Recovery --
9.2. Recovery from Lexical Phase Errors --
9.3. Recovery from Syntactic Phase Errors --
9.4. Error Recovery in Lr Parsing --
9.5. Automatic Error Recovery in Yacc --
9.6. Predictive Parsing Error Recovery --
9.7. Recovery from Semantic Errors --
10. Code Optimization --
10.1. Introduction to Code Optimization --
10.2. What is Code Optimization? --
10.3. Loop Optimization --
10.3.1. Eliminating Loop Invariant Computations --
10.3.2. Algorithm to Partition Three-Address Code into Basic Blocks --
10.3.3. Loop Detection --
10.3.4. Identification of the Back Edges --
10.3.5. Reducible Flow Graphs --
10.4. Eliminating Induction Variables --
10.5. Eliminating Local Common Subexpressions --
10.6. Eliminating Global Common Subexpressions --
10.6.1. Available Expressions --
10.7. Loop Unrolling --
10.8. Loop Jamming --
11. Code Generation --
11.1. An Introduction to Code Generation --
11.2. Problems That Hinder Good Code Generation --
11.3. The Machine Model --
11.4. Straightforward Code Generation --
11.5. Using Dag For Code Generation --
11.5.1. Heuristic Dag Ordering --
11.5.2. The Labeling Algorithm --
11.5.3. Code Generation by Traversing the Labeled Tree --
11.6. Using Algebraic Properties to Reduce the Register Requirement --
11.7. Peephole Optimization --
12. Exercises.
Series Title: Electrical and computer engineering series.
Responsibility: \c O.G. Kakde.

Reviews

User-contributed reviews
Retrieving GoodReads reviews...
Retrieving DOGObooks reviews...

Tags

Be the first.

Similar Items

Confirm this request

You may have already requested this item. Please select Ok if you would like to proceed with this request anyway.

Linked Data


Primary Entity

<http://www.worldcat.org/oclc/51737123> # Algorithms for compiler design
    a schema:CreativeWork, schema:Book ;
   library:oclcnum "51737123" ;
   library:placeOfPublication <http://experiment.worldcat.org/entity/work/data/1057720#Place/hingham_mass> ; # Hingham, Mass.
   library:placeOfPublication <http://id.loc.gov/vocabulary/countries/mau> ;
   schema:about <http://dewey.info/class/005.453/e22/> ;
   schema:about <http://id.worldcat.org/fast/805020> ; # Algorithms
   schema:about <http://id.worldcat.org/fast/871538> ; # Compilers (Computer programs)
   schema:author <http://viaf.org/viaf/14140738> ; # O. G. Kakde
   schema:bookFormat bgn:PrintBook ;
   schema:datePublished "2003" ;
   schema:description "1. Introduction -- 1.1. What is a Compiler? -- 1.2. What is a Cross-Compiler? -- 1.3. Compilation -- 1.3.1. Lexical Analysis Phase -- 1.4. Regular Expression Notification/Finite Automata Definitions -- 1.5. Relations -- 1.5.1. Properties of the Relation -- 2. Finite Automata and Regular Expressions -- 2.1. Finite Automata -- 2.2. Non-Deterministic Finite Automata -- 2.2.1. Acceptance of Strings by Non-Deterministic Finite Automata -- 2.3. Transforming NFA to DFA -- 2.4. The NFA with [set membership]-Moves -- 2.4.1. Algorithms for Finding [set membership]-Closure (q) -- 2.5. The NFA with [set membership]-Moves to the DFA -- 2.6. Minimization/Optimization of a DFA -- 2.6.1. Algorithm to Detect Unreachable States -- 2.6.2. Algorithm for Detection of Dead States -- 2.7. Examples of Finite Automata Construction -- 2.8. Regular Sets and Regular Expressions -- 2.8.1. Regular Sets -- 2.8.2. Regular Expression -- 2.9. Obtaining the Regular Expression from the Finite Automata -- 2.10. Lexical Analyzer Design -- 2.10.1. Format of the Input or Source File of Lex -- 2.11. Properties of Regular Sets -- 2.12. Equivalence of Two Automatas -- 3. Context-Free Grammar and Syntax Analysis -- 3.1. Syntax Analysis -- 3.2. Context-Free Grammar -- 3.2.1. Derivation -- 3.2.2. Standard Notation -- 3.2.3. Derivation Tree or Parse Tree -- 3.2.4. Reduction of Grammar -- 3.2.5. Useless Grammar Symbols -- 3.2.6. [set membership]-Productions and Nullable Nonterminals -- 3.2.7. Eliminating [set membership]-Productions -- 3.2.8. Eliminating Unit Productions -- 3.2.9. Eliminating Left Recursion -- 3.3. Regular Grammar -- 3.4. Right Linear and Left Linear Grammar -- 3.4.1. Right Linear Grammar -- 3.4.2. Left Linear Grammar -- 4. Top-Down Parsing -- 4.1. Top-Down Parsing -- 4.2. Implementation -- 4.3. The Predictive Top-Down Parser -- 4.3.1. Implementation of a Table-Driven Predictive Parser -- 4.3.2. Examples -- 5. Bottom-Up Parsing -- 5.1. What is Bottom-Up Parsing? -- 5.2. A Handle of a Right Sentential Form -- 5.3. Implementation -- 5.4. The LR Parser -- 5.4.1. Augmented Grammar -- 5.4.2. An Algorithm for Finding the Canonical Collection of Sets of LR(0) Items -- 5.4.3. Construction of a Parsing Action [vertical bar] Goto Table for an SLR(1) Parser -- 5.4.4. An Algorithm for Finding the Canonical Collection of Sets of LR(1) Items -- 5.4.5. Construction of the Action [vertical bar] Goto Table for the LR(1) Parser -- 5.4.6. Construction of the LALR Parsing Table -- 5.4.7. Parser Conflicts -- 5.4.8. Handling Ambiguous Grammars -- 5.5. Data Structures for Representing Parsing Tables -- 5.7. Why LR Parsing is Attractive -- 5.8. Examples -- 6. Syntax-Directed Definitions and Translations -- 6.1. Specification of Translations -- 6.2. Implementation of the Translations Specified by Syntax-Directed Definitions -- 6.3. L-Attributed Definitions -- 6.4. Syntax-Directed Translation Schemes -- 6.5. Intermediate Code Generation -- 6.6. Representing Three-Address Statements -- 6.7. Syntax-Directed Translation Schemes to Specify the Translation of Various Programming Language Constructs -- 6.7.1. Arithmetic Expressions -- 6.7.2. Boolean Expressions -- 6.7.3. Short-Circuit Code for Logical Expressions -- And -- Or -- Not -- If-Then-Else -- If-Then -- While -- Do-While -- Repeat-Until -- For -- 6.8. Implementation of Increment and Decrement Operators -- 6.9. The Array Reference -- 6.10. Switch/Case -- 6.11. The Procedure Call -- 6.12. Examples -- 7. Symbol Table Management -- 7.1. The Symbol Table -- 7.2. Implementation -- 7.3. Entering Information into the Symbol Table -- 7.4. Where Should Names be Held? -- 7.5. Information About the Runtime Storage Location -- 7.6. Various Approaches to Symbol Table Organization -- 7.6.1. The Linear List -- 7.6.2. Search Trees -- 7.6.3. Hash Tables -- 7.7. Representing the Scope Information in the Symbol Table -- 8. Storage Management -- 8.1. Storage Allocation -- 8.2. Activation of the Procedure and the Activation Record -- 8.3. Static Allocation -- 8.4. Stack Allocation -- 8.4.1. The Call and Return Sequence -- 8.4.2. Access to Nonlocal Names -- 8.4.3. Setting Up the Access Link -- 9. Error Handling -- 9.1. Error Recovery -- 9.2. Recovery from Lexical Phase Errors -- 9.3. Recovery from Syntactic Phase Errors -- 9.4. Error Recovery in Lr Parsing -- 9.5. Automatic Error Recovery in Yacc -- 9.6. Predictive Parsing Error Recovery -- 9.7. Recovery from Semantic Errors -- 10. Code Optimization -- 10.1. Introduction to Code Optimization -- 10.2. What is Code Optimization? -- 10.3. Loop Optimization -- 10.3.1. Eliminating Loop Invariant Computations -- 10.3.2. Algorithm to Partition Three-Address Code into Basic Blocks -- 10.3.3. Loop Detection -- 10.3.4. Identification of the Back Edges -- 10.3.5. Reducible Flow Graphs -- 10.4. Eliminating Induction Variables -- 10.5. Eliminating Local Common Subexpressions -- 10.6. Eliminating Global Common Subexpressions -- 10.6.1. Available Expressions -- 10.7. Loop Unrolling -- 10.8. Loop Jamming -- 11. Code Generation -- 11.1. An Introduction to Code Generation -- 11.2. Problems That Hinder Good Code Generation -- 11.3. The Machine Model -- 11.4. Straightforward Code Generation -- 11.5. Using Dag For Code Generation -- 11.5.1. Heuristic Dag Ordering -- 11.5.2. The Labeling Algorithm -- 11.5.3. Code Generation by Traversing the Labeled Tree -- 11.6. Using Algebraic Properties to Reduce the Register Requirement -- 11.7. Peephole Optimization -- 12. Exercises."@en ;
   schema:exampleOfWork <http://worldcat.org/entity/work/id/1057720> ;
   schema:inLanguage "en" ;
   schema:isPartOf <http://experiment.worldcat.org/entity/work/data/1057720#Series/electrical_and_computer_engineering_series> ; # Electrical and computer engineering series.
   schema:name "Algorithms for compiler design"@en ;
   schema:productID "51737123" ;
   schema:publication <http://www.worldcat.org/title/-/oclc/51737123#PublicationEvent/hingham_mass_charles_river_media_2003> ;
   schema:publisher <http://experiment.worldcat.org/entity/work/data/1057720#Agent/charles_river_media> ; # Charles River Media
   schema:workExample <http://worldcat.org/isbn/9781584501008> ;
   wdrs:describedby <http://www.worldcat.org/title/-/oclc/51737123> ;
    .


Related Entities

<http://experiment.worldcat.org/entity/work/data/1057720#Agent/charles_river_media> # Charles River Media
    a bgn:Agent ;
   schema:name "Charles River Media" ;
    .

<http://experiment.worldcat.org/entity/work/data/1057720#Place/hingham_mass> # Hingham, Mass.
    a schema:Place ;
   schema:name "Hingham, Mass." ;
    .

<http://experiment.worldcat.org/entity/work/data/1057720#Series/electrical_and_computer_engineering_series> # Electrical and computer engineering series.
    a bgn:PublicationSeries ;
   schema:hasPart <http://www.worldcat.org/oclc/51737123> ; # Algorithms for compiler design
   schema:name "Electrical and computer engineering series." ;
   schema:name "Electrical and computer engineering series" ;
    .

<http://id.worldcat.org/fast/805020> # Algorithms
    a schema:Intangible ;
   schema:name "Algorithms"@en ;
    .

<http://id.worldcat.org/fast/871538> # Compilers (Computer programs)
    a schema:Intangible ;
   schema:name "Compilers (Computer programs)"@en ;
    .

<http://viaf.org/viaf/14140738> # O. G. Kakde
    a schema:Person ;
   schema:familyName "Kakde" ;
   schema:givenName "O. G." ;
   schema:name "O. G. Kakde" ;
    .

<http://worldcat.org/isbn/9781584501008>
    a schema:ProductModel ;
   schema:isbn "1584501006" ;
   schema:isbn "9781584501008" ;
    .


Content-negotiable representations

Close Window

Please sign in to WorldCat 

Don't have an account? You can easily create a free account.