CD Course File
CD Course File
CS6660
COMPILER DESIGN
LTPC
3003
Course Objectives:
The student should be made to:
1. Learn the design principles of a Compiler.
2.Learn the various parsing techniques and different levels of translation
3.Learn how to optimize and effectively generate machine codes
UNIT I
INTRODUCTION TO COMPILERS
5
Translators-Compilation and Interpretation-Language processors -The Phases of CompilerErrors Encountered in Different Phases-The Grouping of Phases-Compiler Construction Tools
Programming Language basics.
UNIT II
LEXICAL ANALYSIS
9
Need and Role of Lexical Analyzer-Lexical Errors-Expressing Tokens by Regular
Expressions- Converting Regular Expression to DFA- Minimization of DFA-Language for
Specifying Lexical Analyzers-LEX-Design of Lexical Analyzer for a sample Language.
UNIT III
SYNTAX ANALYSIS
10
Need and Role of the Parser-Context Free Grammars -Top Down Parsing -General
Strategies- Recursive Descent Parser Predictive Parser-LL(1) Parser-Shift Reduce Parser-LR
Parser-LR (0)Item- Construction of SLR Parsing Table -Introduction to LALR Parser Error
Handling and Recovery in Syntax Analyzer-YACC-Design of a syntax Analyzer for a Sample
Language .
UNIT IV SYNTAX DIRECTED TRANSLATION & RUN TIME ENVIRONMENT 12
Syntax directed Definitions-Construction of Syntax Tree-Bottom-up Evaluation of
S-Attribute Definitions- Design of predictive translator Type Systems-Specification of a simple
type checker- Equivalence of Type Expressions-Type Conversions.
RUN-TIME ENVIRONMENT: Source Language Issues-Storage Organization-Storage
Allocation- Parameter Passing-Symbol Tables-Dynamic Storage Allocation-Storage Allocation in
FORTAN.
UNIT V
CODE OPTIMIZATION AND CODE GENERATION
9
Principal Sources of Optimization-DAG- Optimization of Basic Blocks-Global Data Flow
Analysis- Efficient Data Flow Algorithms-Issues in Design of a Code Generator A Simple
Code Generator Algorithm.
TOTAL:
45 PERIODS
Course Outcomes:
At the end of the course, the student should be able to:
1. Design and implement a prototype compiler.
2. Apply the various optimization techniques.
3. Use the different compiler construction tools.
TEXTBOOK:
1. Alfred V Aho, Monica S. Lam, Ravi Sethi and Jeffrey D Ullman, Compilers
Principles, Techniques and Tools, 2nd Edition, Pearson Education, 2007.
REFERENCES:
1. Randy Allen, Ken Kennedy, Optimizing Compilers for Modern Architectures:
A Dependence-based Approach, Morgan Kaufmann Publishers, 2002.
2. Steven S. Muchnick, Advanced Compiler Design and Implementation, Morgan Kaufmann
Publishers Elsevier Science, India, Indian Reprint 2003.
3. Keith D Cooper and Linda Torczon, Engineering a Compiler, Morgan Kaufmann Publishers
Elsevier Science, 2004.
4. Charles N. Fischer, Richard. J. LeBlanc, Crafting a Compiler with C, Pearson
Education, 2008.
CS6660
COMPILER DESIGN
Course Plan:
The course plan is meant as a guideline. There may probably be changes.
Lecture
No.
Learning Objective
UNIT I
1
2
3
4
5
Teaching
Reference Method
Testing
Method
INTRODUCTION TO COMPILERS
Explain the difference
between compiler and
interpreter
Know the functionality
of Language Processor
Know the functionality
of each phase of
compiler
List the errors in each
phase
Explain Grouping of
phase and compiler
software tools
Understand
Programming Language
Basics
UNIT II
Translators, Compilation
and Interpretation
T1(1-3)
Language processors
T1(1-3)
T1(4-10)
Errors Encountered in
Different Phases
The Grouping of PhasesCompiler Construction
Tools
Programming Language
basics
T1(11)
BB
Assignment
BB
Quiz
BB
Class Test
BB
Class Test
PPT
Class Test
BB
Assignment
BB
Quiz
BB
Assignment
T1(11-12)
T1(25-36)
LEXICAL ANALYSIS
Explain functions of
lexical analyzer
Identify lexical errors
and specifying tokens
8
through regular
expressions
Understanding Regular
9-10
expression and DFA
Know minimization of
11-12 DFA
7
13
Topics to be covered
Understand lexical
analyzer tool
T1(152159)
BB
Class Test
Minimization of DFA
T1(180184)
BB
Class Test
T1(166172)
BB
Class Test
BB
Assignment
T1(166172)
UNIT III
SYNTAX ANALYSIS
Know functions of
parser
Explain CFG and
17-18 Parsing types
Syntax directed
Definitions-Construction
of Syntax Tree-
T1(303304)
T1(318321)
T1(310312)
T1(370376)
T1(370376)
T1(378391)
T1(426427)
T1(427429)
T1(441449)
BB
Class Test
PPT
Assignment
BB
Class Test
BB
Class Test
BB
Class Test
PPT
Assignment
BB
Class Test
BB
Class Test
Examine dynamic
Dynamic Storage
PPT
Class Test
T1(43036-37 storage-allocation
Allocation-Storage
438)
strategies.
Allocation in FORTAN
UNIT V
CODE OPTIMIZATION AND CODE GENERATION
Understand various code Principal Sources of
optimization techniques Optimization
Draw Dag and
DAG- Optimization of
39-40
optimization
Basic Blocks
Explain Data flow
Global Data Flow
41-42 analysis and algorithms Analysis- Efficient Data
Flow Algorithms
Explain issues in code Issues in Design of a Code
43
generator
Generator
Explain Simple code
A Simple Code
44-45
generation algorithm
Generator Algorithm
38
T1(584596)
T1(533538)
T1(597610)
T1(505510)
T1(542547)
BB
Assignment
BB
Class Test
BB
Class Test
PPT
Quiz
BB
Class Test
S.NO
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
ROLL NO
NAME
310114104
001
310114104
002
310114104
003
310114104
004
310114104
005
310114104
006
310114104
007
310114104
008
310114104
009
310114104
010
310114104
011
310114104
012
310114104
013
310114104
014
310114104
015
310114104
016
310114104
017
310114104
018
310114104
019
310114104
021
310114104
022
310114104
023
310114104
024
310114104
025
ABINAYA S
S.NO
27
ROLL NO
NAME
310114104028
HARINI G
ADITHYA K B R
28
310114104029
HEMAVATHY D
ANILA A
29
310114104030
JAYADURGA M
ANJALI P
30
310114104031
JAYARAJ J
ANUSHA M
31
310114104032
JAYASHRI S
ARUN B
32
310114104033
JAYASINDHA A
ASHIFA R
33
310114104034
JEEVITHA P
ASHOK KUMAR S
34
310114104035
JENIFER E
ASSUMPTA ROSY
S
AVINASH A R
35
310114104036
36
310114104037
JERTHRUTH
MARY V
KAMALI P
BALAJI K
37
310114104038
KAMALI R
BARATH KUMAR S
38
310114104039
KANNAN B
BHAGYASREE G
39
310114104040
BHARATH VAJ K
40
310114104041
KARTHIKA DEVI
V
KARTHIK R
BHAVYA S
41
310114104042
KAVIMALAR R
BHUVANESWARI T
42
310114104043
KAVITHA K
CHANDRA
SEKARAN S
CHARUMATHI M
43
310114104044
KEERTHANA P
44
310114104045
KIRUTHIKA P
DHILIPKUMAR T
45
310114104046
KISHORE G
DIVYA D
46
310114104047
KUMARESAN R
DIVYA R
47
310114104048
DONDAPATI
SOWMYA
GAUTHAM G
48
310114104049
LAKSHMI PRIYA
R
LOGANATHAN T
49
310114104050
GAYATHRI R
50
310114104051
310114104
026
310114104
027
GAYATRI J
51
310114104701
MAHALAKSHMI
R
MOHAMMED
FAIZ MOHIDEEN
M
PADMA PRIYA S
GOMATHI B
52
310114104702
AKALYA DEVI C
Course code
: CS6660
Date Of Commencement:
COURSE AIM
This course deals with the compiling, structure of compilers: syntax and lexical
analysis, parsing, introduction to type checking, intermediate code generation,
introduction to code generation and optimization. Discussion about tools for compilers
design (e.g. Lex and Yacc).
COURSE OBJECTIVES:
The student should be made to:
1. Learn the design principles of a Compiler.
2.Learn the various parsing techniques and different levels of translation
3.Learn how to optimize and effectively generate machine codes
PRE-REQISITES:
Theory of Computation, Discrete Mathematics
COURSE OUTCOMES (CO)
At the end of the course, the student should be able to:
1. Design and implement a prototype compiler.
2. Apply the various optimization techniques.
3. Use the different compiler construction tools.
The PO of this programme will be framed based inputs from Industrial and an academic
expert with reference to the university curriculum and Graduate Attributes (GA). The suggestion
from senior faculty members is also taken into consideration for framing the PO.
b.The students will have the ability to analyze a problem, and identify and formulate the
computing requirements appropriate to its solution.
d.The students will have the ability to formulate a rule/knowledge based method and to
apply heuristic approaches to interpret and analyze the data for the attainment of problem
optimization.
g.The students will have the potential to adopt systematic and effective approach in
developing an application specific modules based on the guidelines given by the
professional society.
h.The students will have the ability to exhibit effective teamwork during diverse and
multidisciplinary areas such as information management, human computer interaction,
programming, networking, web systems and pervasive computing.
j.The students will have the ability to device a strategic work plan for the design
problems and will document the evidence and future directions for the benefit of the
society.
CO & PO mapping:
Program Outcomes
Course
Outcomes
CO1
CO2
CO3
b
S
M
M
S
S
S
S
Teaching Aids:
1. Classroom teaching (Board)
2. PPT (LCD Projector)
COURSE SURVEY
Course
Outcomes
CO1
CO2
CO3
Strong[5]
Program Outcomes
a
b
S[5]
M[3]
M[3]
Moderate[3-4]
d
S[5]
S[5]
S[5]
j
S[5]
S[5]
Weak[1-2]
Assessment Details
Course
CO1
Monthly Test-I
[60%]
CO2
60%
Monthly Test-II
60%
Model Exam
Other
Assignments
60%
40%
Assignment-II
Co-Curricular
Activities
[40%]
Assignment-I
40%
Assignment-III
Class Test
CO3
40%
Class Test I
Class Test II
Guest Lecture
Quiz
Tutorial
TOTAL
ASSESSMENT PLAN FOR THE COURSE:
100%
100%
100%
S.N
o
Activity Name
No. of.
activities
Monthly Test
Model Exam
Details
Monthly Test I
: 1.5 Unit.
Monthly Test II
: 1.5 Unit.
Model Exam
: 2 Units.
Special test
Class test I
Class test II
Assignments
Assignment 1
Assignment 2
Assignment3
Assignment
Assessment Details
Discussion
Assignment 1
Course
CO1
Assignment
Monthly
Test-I2
[60%]
Assignment3
Monthly
Test-II
Model Exam
Assignment-I
Assignments
Assignment-III
Other
Co-Curricular
Activities
[40%]
Assignment-II
Class test
Guest Lecture
Quiz
Tutorial
TOTAL
Class test 1
Class test 2
CO2
CO3
HOD/CSE
SECTION
CO%
A+B
SECTION
CO1
CO2
CO3
2016-2017
CO1
B
CO2
CO3
CO3
Year
section
2016-2017
CO %
Co total (5
POINTS))
UNIVERSITY
RESULT
HOD/CSE