Compilers Principles, Techniques, & Tools

Important questions and answers, Online Study Material, Lecturing Notes, Assignment, Reference, Wiki

Compilers Principles, Techniques, & Tools

Compilers Principles, Techniques, & Tools

Chapter 1 : Introduction

Compilers - Principles, Techniques, & Tools
Language Processors
The Structure of a Compiler
The Evolution of Programming Languages
The Science of Building a Compiler
Applications of Compiler Technology
Programming Language Basics

Chapter 2 : Simple Syntax Directed Translator

A Simple Syntax-Directed Translator
Syntax Definition
Syntax-Directed Translation
A Translator for Simple Expressions
Lexical Analysis
Symbol Table Per Scope and Use of Symbol Tables
Intermediate Code Generation

Chapter 3 : Lexical Analysis

Lexical Analysis
The Role of the Lexical Analyzer
Input Buffering: Buffer Pairs, Sentinels
Specification of Tokens
Recognition of Tokens
The Lexical-Analyzer Generator Lex
Finite Automata
From Regular Expressions to Automata
Design of a Lexical-Analyzer Generator
Optimization of DFA-Based Pattern Matchers

Chapter 4 : Syntax Analysis

Syntax Analysis
Context-Free Grammars
Writing a Grammar
Top-Down Parsing
Bottom-Up Parsing
Introduction to LR Parsing: Simple LR
More Powerful LR Parsers
Using Ambiguous Grammars
Parser Generators

Chapter 5 : Syntax Directed Translation

Syntax-Directed Translation
Syntax-Directed Definitions
Evaluation Orders for SDD's
Applications of Syntax-Directed Translation
Syntax-Directed Translation Schemes
Implementing L-Attributed SDD's

Chapter 6 : Intermediate Code Generation

Intermediate-Code Generation
Variants of Syntax Trees
Three-Address Code
Types and Declarations
Translation of Expressions
Type Checking
Control Flow
Intermediate Code for Procedures

Chapter 7 : Run Time Environments

Run-Time Environments
Storage Organization
Stack Allocation of Space
Access to Nonlocal Data on the Stack
Heap Management
Introduction to Garbage Collection
Introduction to Trace-Based Collection
Short-Pause Garbage Collection
Advanced Topics in Garbage Collection

Chapter 8 : Code Generation

Code Generation
Issues in the Design of a Code Generator
The Target Language
Addresses in the Target Code
Basic Blocks and Flow Graphs
Optimization of Basic Blocks
A Simple Code Generator
Peephole Optimization
Register Allocation and Assignment
Instruction Selection by Tree Rewriting
Optimal Code Generation for Expressions
Dynamic Programming Code-Generation

Chapter 9 : Machine Independent Optimizations

Machine-Independent Optimizations
The Principal Sources of Optimization
Introduction to Data-Flow Analysis
Foundations of Data-Flow Analysis
Constant Propagation
Partial-Redundancy Elimination
Loops in Flow Graphs
Region-Based Analysis
Symbolic Analysis

Chapter 10 : Instruction Level Parallelism

Instruction-Level Parallelism
Processor Architectures
Code-Scheduling Constraints
Basic-Block Scheduling
Global Code Scheduling
Software Pipelining Algorithm
Scheduling Acyclic Data-Dependence and Cyclic Dependence Graphs
Improvements to the Pipelining Algorithms

Chapter 11 : Optimizing for Parallelism and Locality

Optimizing for Parallelism and Locality
Basic Concepts of Optimizing for Parallelism and Locality
Matrix Multiply: An In-Depth Example
Iteration Spaces
Affine Array Indexes
Data Reuse
Array Data-Dependence Analysis
Finding Synchronization-Free Parallelism
Synchronization Between Parallel Loops
Locality Optimizations
Other Uses of Affine Transforms

Chapter 12 : Interprocedural Analysis

Interprocedural Analysis
Basic Concepts of Interprocedural Analysis
Why Interprocedural Analysis?
A Logical Representation of Data Flow
A Simple Pointer-Analysis Algorithm
Context-Insensitive Interprocedural Analysis
Context-Sensitive Pointer Analysis
Datalog Implementation by BDD's

Privacy Policy, Terms and Conditions, DMCA Policy and Compliant, Contact

Copyright © 2018-2023; All Rights Reserved. Developed by Therithal info, Chennai.