0% found this document useful (0 votes)
22 views

Compiler Design

The document outlines the course details for Compiler Design (PCC-CSE-601), including prerequisites, learning objectives, and a breakdown of modules covering various aspects of compiler construction. Key topics include lexical analysis, syntax analysis, semantic analysis, code optimization, and runtime environment management. The course aims to equip students with fundamental concepts and practical skills in compiler design and implementation.

Uploaded by

Alekh Kumar
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
22 views

Compiler Design

The document outlines the course details for Compiler Design (PCC-CSE-601), including prerequisites, learning objectives, and a breakdown of modules covering various aspects of compiler construction. Key topics include lexical analysis, syntax analysis, semantic analysis, code optimization, and runtime environment management. The course aims to equip students with fundamental concepts and practical skills in compiler design and implementation.

Uploaded by

Alekh Kumar
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 2

Course Code PCC-CSE-601

Category Professional Core Courses


Course Title Compiler Design
Scheme & Credits L T P Credit Semester
2 1 0 3 VI
Pre-requisites Formal Language and Automata Theory, Data Structures and Algorithms,

Learning Objectives:
 The objective of this course is to introduce students to the following concepts underlying the
design and implementation of compilers.
 Describe the steps and algorithms used by compilers.
 Recognize the underlying formal models such as finite state automata, push-down automata
and their connection to language definition through regular expressions and grammars.
 Discuss the effectiveness of optimization.
 Explain the impact of a separate compilation facility and the existence of program libraries on
the compilation process.

……………………………………………………………………………………………………………
COMPILER DESIGN Total 35 Lectures
……………………………………………………………………………………………………………

Module1: 05 Lectures
Translator: Compiler, Interpreter, Assembler; Language Processing System, Types of Compilers,
Structure and Phases of Compiler, Token and Lexeme, Analysis and Synthesis Phase of Compiler.
Lexical Analyzer: The role of a lexical analyser, Role of a parser, use of context-free grammars
(CFG), writing grammars for programming languages (removal left recursion, etc.), parse trees and
ambiguity, removing ambiguity from grammar
Module2: 12 Lectures
Syntax Analyzer: Role of the parser, First (), Follow (), LL (1) parsing table, Top down parser: with
backtracking and without backtracking, Bottom up parser: LR parser and operator precedence parser,
LR parser: LR (0), SLR (1), CLR (1), LALR (1), Shift/Reduce conflicting.
Module 3: 06 Lectures
Semantic Analyzer: Syntax directed translation, Types of attributes: Synthesized and Inherited,
Some expression evaluation by semantic rules.
Intermediate Code Generation: Linear representation, 3 Address code, Quadruples, Triples, Indirect
Triples, Tree representation, Syntax tree, directed acyclic graph, Control flow graph (CFG), Back
patching.
Module 4: 06 Lectures
Code optimization: Loop optimization, code motion, loop unrolling, loop jamming, constant folding,
constant propagation, redundancy elimination, strength reduction, deadcode elimination, algebraic
simplification.
Code Generation: Issues in the design of code generator – The target machine – Runtime Storage
management – Basic Blocks and Flow Graphs, Peephole Optimization.
Module 5: 06 Lectures
Runtime environment: static, stack and heap management
Symbol Table: Representation, components, implementation, operation, insert, delete, lookup, scope
management, linear list, self-organizing list, binary search tree, hash table.
Error handling: Error reporting, detection and recovery management.
Text Books:

1. Compilers: Principles, Techniques, and Tools , by A.V. Aho, Monica Lam, Ravi Sethi, and
J.D. Ullman, (2nd ed.), Addison-Wesley, 2007 (main text book, referred to as ALSU in lab
assignments).
2. K.D. Cooper, and Linda Torczon, Engineering a Compiler, Morgan Kaufmann, 2004.

Reference Books:

1. K.C. Louden, Compiler Construction: Principles and Practice, Cengage Learning, 1997.
2. D. Brown, J. Levine, and T. Mason, LEX and YACC, O‟Reilly Media, 1992.

Course Outcome: After learning the course the students should be able to:
1. Understand the basic concepts and application of Compiler Design
2. Apply their basic knowledge Data Structure to design Symbol Table, Lexical Analyser ,
Intermediate
3. Code Generation, Parser (Top Down and Bottom Up Design) and will able to understand
strength of
4. Grammar and Programming Language.
5. Understand various Code optimization Techniques and Error Recovery mechanisms.
6. Understand and Implement a Parser

………………………………………………………………………………………………………

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy