Compiler Design - CS8602

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

Compiler Design

Compiler Design


Algorithms for Solving Nonlinear Equations
Introduction to Compiling Compilers
Analysis of the source program
The Phases of a Compiler
Cousins of Compiler
Grouping of the Phases
Compiler Construction Tools
Lexical Analysis
Input Buffering
Specification of Tokens
Recognition of Tokens
A Language For Specifying Lexical Analyzer
Important Short Questions and Answers : Principles of Compiler Design - Lexical Analysis


Syntax Analysis
The Role of Parser
Context-Free Grammars
Writing a Grammar
Top down parsing and Bottom up Parsing
Constructing SLR(1) Parsing Table
Type Checking
Specification of a Simple Type Checker
Run-Time Environments - Source Language Issues
Storage Organization
Storage Allocation Strategies
Important Short Questions and Answers: Syntax Analysis and Run-Time Environments


Intermediate Languages
Assignment Statements
Boolean Expressions
Case Statements
Procedure Calls
Important Short Questions and Answers: Principles of Compiler Design - Intermediate Code Generation


Issues in the design of a code generator
Target Machine
Run-Time Storage Management
Basic Blocks and Flow Graphs of Code Generation
A Simple Code Generator
Register Allocation and Assignment
The Dag Representation For Basic Blocks
Generating Code From DAGs
Important Short Questions and Answers: Compiler Design - Code Generation


Code Optimization
Principal Sources of Optimisation
Peephole Optimization
Optimization of Basic Blocks
Loops in Flow Graph
Introduction to Global Dataflow Analysis
Code Improvig Transformations
Glossary - Principles of Compiler Design
Tutorial problems and worked out examples - Principles of Compiler Design
Important Short Questions and Answers: Code optimization

For Extra Reference

Compilers Principles Techniques and Tools by Alfred V Aho Monica S Lam Ravi Sethi Jeffrey D Ullman

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

CS8602 Compiler Design - Anna University 2017 Regulation Syllabus - Download Pdf
Download Anna University Notes Android App
Compiler Design - Start Reading Online

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

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