logo
Product categories

EbookNice.com

Most ebook files are in PDF format, so you can easily read them using various software such as Foxit Reader or directly on the Google Chrome browser.
Some ebook files are released by publishers in other formats such as .awz, .mobi, .epub, .fb2, etc. You may need to install specific software to read these formats on mobile/PC, such as Calibre.

Please read the tutorial at this link.  https://ebooknice.com/page/post?id=faq


We offer FREE conversion to the popular formats you request; however, this may take some time. Therefore, right after payment, please email us, and we will try to provide the service as quickly as possible.


For some exceptional file formats or broken links (if any), please refrain from opening any disputes. Instead, email us first, and we will try to assist within a maximum of 6 hours.

EbookNice Team

(Ebook) Introduction to Compiler Construction in a Java World 1st Edition by Bill Campbell, Swami Iyer, Bahar Akbal Delibas ISBN 1439860882 9781439860885

  • SKU: EBN-7145306
Zoomable Image
$ 32 $ 40 (-20%)

Status:

Available

0.0

0 reviews
Instant download (eBook) Introduction to Compiler Construction in a Java World after payment.
Authors:Bill Campbell; Swami Iyer; Bahar Akbal-Delibas
Pages:355 pages.
Year:2012
Editon:Hardcover
Publisher:CRC Press
Language:english
File Size:3.79 MB
Format:pdf
ISBNS:9781439860885, 1439860882
Categories: Ebooks

Product desciption

(Ebook) Introduction to Compiler Construction in a Java World 1st Edition by Bill Campbell, Swami Iyer, Bahar Akbal Delibas ISBN 1439860882 9781439860885

(Ebook) Introduction to Compiler Construction in a Java World 1st Edition by Bill Campbell, Swami Iyer, Bahar Akbal Delibas - Ebook PDF Instant Download/Delivery: 1439860882, 9781439860885
Full download (Ebook) Introduction to Compiler Construction in a Java World 1st Edition after payment

Product details:

ISBN 10: 1439860882 
ISBN 13: 9781439860885
Author: Bill Campbell, Swami Iyer, Bahar Akbal Delibas

Immersing students in Java and the JVM, this text enables a deep understanding of the Java programming language and its implementation. It focuses on design, organization, and testing, helping students learn good software engineering skills and become better programmers. By working with and extending a real, functional compiler, students develop a hands-on appreciation of how compilers work, how to write compilers, and how the Java language behaves. Fully documented Java code for the compiler is accessible on a supplementary website.

(Ebook) Introduction to Compiler Construction in a Java World 1st Table of contents:

1 Compilation
1.1 Compilers
1.1.1 Programming Languages
1.1.2 Machine Languages
1.2 Why Should We Study Compilers?
1.3 How Does a Compiler Work? The Phases of Compilation
1.3.1 Front End
1.3.2 Back End
1.3.3 “Middle End”
1.3.4 Advantages to Decomposition
1.3.5 Compiling to a Virtual Machine: New Boundaries
1.3.6 Compiling JVM Code to a Register Architecture
1.4 An Overview of the j-- to JVM Compiler
1.4.1 j-- Compiler Organization
1.4.2 Scanner
1.4.3 Parser
1.4.4 AST
1.4.5 Types
1.4.6 Symbol Table
1.4.7 preAnalyze() and analyze()
1.4.8 Stack Frames
1.4.9 codegen()
1.5 j-- Compiler Source Tree
Enhancing j--
Writing Tests
Changes to Lexical and Syntactic Grammars
Changes to Scanner
Changes to Parser
Semantic Analysis and Code Generation
Testing the Changes
1.6 Organization of This Book
1.7 Further Readings
1.8 Exercises
2 Lexical Analysis
2.1 Introduction
2.2 Scanning Tokens
Identifiers and Integer Literals
Reserved Words
Separators and Operators
White Space
Comments
2.3 Regular Expressions
2.4 Finite State Automata
2.5 Non-Deterministic Finite-State Automata (NFA) versus Deterministic Finite-State Automata (DFA)
2.6 Regular Expressions to NFA
2.7 NFA to DFA
2.8 Minimal DFA
2.9 JavaCC: Tool for Generating Scanners
2.10 Further Readings
2.11 Exercises
3 Parsing
3.1 Introduction
3.2 Context-Free Grammars and Languages
3.2.1 Backus–Naur Form (BNF) and Its Extensions
3.2.2 Grammar and the Language It Describes
3.2.3 Ambiguous Grammars and Unambiguous Grammars
3.3 Top-Down Deterministic Parsing
3.3.1 Parsing by Recursive Descent
Lookahead
Error Recovery
3.3.2 LL(1) Parsing
LL(1) Parsing Algorithm
First and Follow
Constructing the LL(1) Parse Table
LL(1) and LL(k) Grammars
Removing Left Recursion and Left-Factoring Grammars
Left Recursion
Left factoring
3.4 Bottom-Up Deterministic Parsing
3.4.1 Shift-Reduce Parsing Algorithm
3.4.2 LR(1) Parsing
The LR(1) Parsing Algorithm
The LR(1) Canonical Collection
Constructing the LR(1) Parsing Tables
Conicts in the Action Table
3.4.3 LALR(1) Parsing
Merging LR(1) States
LALR(1) Table Construction
LALR(1) table construction from the LR(1) states
Merging the states as they are constructed
LALR(1) Conicts
3.4.4 LL or LR?
3.5 Parser Generation Using JavaCC
Lookahead
Error Recovery
Generating a Parser Versus Hand-Writing a Parser
3.6 Further Reading
3.7 Exercises
4 Type Checking
4.1 Introduction
4.2 j-- Types
4.2.1 Introduction to j-- Types
4.2.2 Type Representation Problem
4.2.3 Type Representation and Class Objects
4.3 j-- Symbol Tables
4.3.1 Contexts and Idefns: Declaring and Looking Up Types and Local Variables
4.3.2 Finding Method and Field Names in Type Objects
4.4 Pre-Analysis of j-- Programs
4.4.1 An Introduction to Pre-Analysis
4.4.2 JCompilationUnit.preAnalyze()
4.4.3 JClassDeclaration.preAnalyze()
4.4.4 JMethodDeclaration.preAnalyze()
4.4.5 JFieldDeclaration.preAnalyze()
4.4.6 Symbol Table Built by preAnalyze()
4.5 Analysis of j-- Programs
4.5.1 Top of the AST
Traversing the Top of the AST
Rewriting Field Initializations as Assignments
4.5.2 Declaring Formal Parameters and Local Variables
MethodContexts and LocalContexts
Analyzing Local Variable Declarations and Their Initializations
4.5.3 Simple Variables
4.5.4 Field Selection and Message Expressions
Reclassifying an Ambiguous Target
Analyzing a Field Selection
Analyzing a Message Expression
4.5.5 Typing Expressions and Enforcing the Type Rules
Analyzing a Subtraction Operation
Analyzing a + Operation Causes Tree Rewriting for Strings
Analyzing a Literal
Analyzing a Control Statement
4.5.6 Analyzing Cast Operations
4.5.7 Java’s Definite Assignment Rule
4.6 Visitor Pattern and the AST Traversal Mechanism
4.7 Programming Language Design and Symbol Table Structure
4.8 Attribute Grammars
4.8.1 Examples
4.8.2 Formal Definition
4.8.3 j-- Examples
4.9 Further Readings
4.10 Exercises
5 JVM Code Generation
5.1 Introduction
5.2 Generating Code for Classes and Their Members
5.2.1 Class Declarations
5.2.2 Method Declarations
5.2.3 Constructor Declarations
5.2.4 Field Declarations
5.3 Generating Code for Control and Logical Expressions
5.3.1 Branching on Condition
5.3.2 Short-Circuited &&
5.3.3 Logical Not !
5.4 Generating Code for Message Expressions, Field Selection, and Array Access Expressions
5.4.1 Message Expressions
5.4.2 Field Selection
5.4.3 Array Access Expressions
5.5 Generating Code for Assignment and Similar Operations
5.5.1 Issues in Compiling Assignment
l-values and r-values
Assignment Expressions versus Assignment Statements
Additional Assignment-Like Operations
5.5.2 Comparing Left-Hand Sides and Operations
5.5.3 Factoring Assignment-Like Operations
5.6 Generating Code for String Concatenation
5.7 Generating Code for Casts
5.8 Further Readings
5.9 Exercises
6 Translating JVM Code to MIPS Code
6.1 Introduction
6.1.1 What Happens to JVM Code?
6.1.2 What We Will Do Here, and Why
6.1.3 Scope of Our Work
6.2 SPIM and the MIPS Architecture
6.2.1 MIPS Organization
6.2.2 Memory Organization
6.2.3 Registers
6.2.4 Routine Call and Return Convention
6.2.5 Input and Output
6.3 Our Translator
6.3.1 Organization of Our Translator
6.3.2 HIR Control-Flow Graph
The Control-Flow Graph
The State Vector
HIR Instructions
Static Single Assignment (SSA) Form
Control-Flow Graph Construction
6.3.3 Simple Optimizations on the HIR
Inlining
Constant Folding and Constant Propagation
Common Sub-Expression Elimination (CSE) within Basic Blocks
Lifting Loop Invariant Code
Array Bounds Check Elimination
Null Check Elimination
A Need for Data-Flow Analysis
Summary
6.3.4 Low-Level Intermediate Representation (LIR)
6.3.5 Simple Run-Time Environment
Introduction
Naming Convention
Run-Time Stack
A Layout for Objects
Dynamic Allocation
SPIM Class for IO
6.3.6 Generating SPIM Code
6.3.7 Peephole Optimization of the SPIM Code
6.4 Further Readings
6.5 Exercises
7 Register Allocation
7.1 Introduction
7.2 Naïve Register Allocation
7.3 Local Register Allocation
7.4 Global Register Allocation
7.4.1 Computing Liveness Intervals
Liveness Intervals
Computing Local Liveness Sets
Computing Global Liveness Sets
Building the Intervals
7.4.2 Linear Scan Register Allocation
Introduction to Linear Scan
Linear Scan Allocation Algorithm
Splitting Intervals
Choosing an Optimal Split Position
Resolving the Data Flow, Again
Physical Register Assignment in the LIR
Some Improvements to the LIR
What is in the Code Tree; What is Left Undone
7.4.3 Register Allocation by Graph Coloring
Introduction to Graph Coloring Register Allocation
Graph Coloring Register Allocation Algorithm
Register Coalescing
Representing the Interference Graph
Determining Spill Cost
Pre-Coloring Nodes
Comparison to Linear Scan Register Allocation
7.5 Further Readings
7.6 Exercises
8 Celebrity Compilers
8.1 Introduction
8.2 Java HotSpot Compiler
8.3 Eclipse Compiler for Java (ECJ)
8.4 GNU Java Compiler (GCJ)
8.4.1 Overview
8.4.2 GCJ in Detail
8.5 Microsoft C# Compiler for .NET Framework
8.5.1 Introduction to .NET Framework
8.5.2 Microsoft C# Compiler
8.5.3 Classic Just-in-Time Compilation in the CLR
8.6 Further Readings

People also search for (Ebook) Introduction to Compiler Construction in a Java World 1st:

introduction to compiler construction pdf
    
introduction to compiler construction in a java world pdf
    
introduction to compilers and language design pdf
    
introduction to compilers and language design
    
introduction to compiler construction
    
practical compiler construction pdf

 

 

Tags: Bill Campbell, Swami Iyer, Bahar Akbal Delibas, Compiler, Construction

*Free conversion of into popular formats such as PDF, DOCX, DOC, AZW, EPUB, and MOBI after payment.

Related Products