Vous êtes sur la page 1sur 13

SYLLABUS:

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)

The Phases of Compiler

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

14-15 Explain LEX tool

Need and Role of Lexical T1(109Analyzer


113)
Lexical Errors-Expressing
T1(116Tokens by Regular
124)
Expressions
Converting Regular
Expression to DFA

T1(152159)

BB

Class Test

Minimization of DFA

T1(180184)

BB

Class Test

T1(166172)

BB

Class Test

BB

Assignment

Language for Specifying


Lexical Analyzers
LEX-Design of Lexical
Analyzer for a sample
Language

T1(166172)

UNIT III

SYNTAX ANALYSIS

Know functions of
parser
Explain CFG and
17-18 Parsing types

Need and Role of the


T1(191BB
Class Test
Parser
192)
Context Free Grammars
PPT
Class Test
T1(197-Top Down Parsing
216)
-General Strategies
Solve recursive decent Recursive Descent Parser
BB
Class Test
T1(21719-20 parser problem
Predictive Parser-LL(1)
226)
Parser
Solve SR parser, LR and Shift Reduce Parser-LR
BB
Class Test
SLR parser problems
Parser-LR
T1(233(0)Item- Construction of 252)
21-23
SLR Parsing TableT1(266Introduction to LALR
268)
Parser
Know errors in Syntax Error Handling and
T1(194BB
Class Test
Analyzer and YACC
Recovery in Syntax
195),
24-25
tool
Analyzer Yacc (Design T1(287of syntax anayser)
295)
UNIT IV
SYNTAX DIRECTED TRANSLATION & RUN TIME ENVIRONMENT
16

Explain Syntax Tree


26

Syntax directed
Definitions-Construction
of Syntax Tree-

Understanding Syntax Bottom-up Evaluation of


tree with S-attribute
S-Attribute Definitions
Design predictive parser Design of predictive
28-29
translator
Know about type system Type Systems30-31
Specification of a simple
type checker
Explain Type conversion Equivalence of Type
32 and Type expressions
Expressions-Type
Conversions
Understand Source
RUN-TIME
33 Language Issues
ENVIRONMENT: Source
Language Issues
Understand Storage
Storage Organization34 organization and Storage
Storage Allocation
allocation
Explain Parameter
Parameter Passing35 passing and Symbol
Symbol Tables
Table
27

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

III YEAR CSE- A NAME LIST

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

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING


FACT SHEET

Course code

: CS6660

Course Name: Compiler Design

Academic year: 2016-2017

Year/ Sem/Sec: III/VI/A

Course Co-ordinator:N.Vasudevan AP/CSE

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.

PROGRAM OUTCOMES (PO)

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 Methods Considered & CO Weightage Planned:


III -A

Assessment Details

Course
CO1

Continuous Assessment test

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

Continuous Assessment test 3

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

CLASS COORDINATOR FILE


III-A & B/VI SEMESTER
2016-2017
OVERALL CO% ATTAINED
YEAR

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