You are on page 1of 5

CSE - 313 Compiler Design L T P C

Version No. 1.2 Date of Approval: Dec XX, 2016 3 0 2 3


CSE 211 (Discrete Structure)
Prerequisite CSE 212 (Data Structure And Algorithm)
CSE 221 (Theory of Automata and Formal Languages)
co-requisites “C-Programming”
Course Coordinator Mr. Chetan Agarwal

Course Objectives
The objective of this course is to:

1. Provide an understanding of the fundamental principles in compiler design


2. Provide the skills needed for building compilers for various situations that one may
encounter in a career in Computer Science.
3. Learn the process of translating a modern high-level language to executable code. Grasp
of compiler construction.

Course Outcomes
At the end of the course student will be able to:
1. Use language specifications behind the design of compiler.
2. Construct LL,SLR, CLR and LALR parsing table .
3. Evaluate different intermediate codes.
4. Implement different data structure and allocation schemes for symbol table.
5. Develope optimized codes.
6. Apply modern tools and technologies for designing  new compiler.

Catalog Description
The goal of the course is to provide an introduction to the system software like assemblers,
compilers, and macros. It provides the complete description about inner working of a compiler.
This course focuses mainly on the design of compilers and optimization techniques. It also
includes the design of Compiler writing tools. This course also aims to convey the language
specifications, use of regular expressions and context free grammars behind the design of
compiler.

Text Books
1 T1 ALFRED V AHO, JEFFREY D ULLMAN “Principles of Compiler Design”.
2 T2 V Raghvan, “ Principles of Compiler Design”, TMH
3 T3 Kenneth Louden,” Compiler Construction”, Cengage Learning
Reference Books
1. Aho, Sethi & Ullman, "Compilers: Principles, Techniques and Tools”, Pearson
Education2
2. Charles Fischer and Ricard LeBlanc,” Crafting a Compiler with C”, Pearson
Education
Course Content

Syllabus of COMPILER DESIGN


Module I Introduction:
Introduction to Compiler, Phases and passes, Bootstrapping, Finite state machines and
regularexpressions and their applications to lexical analysis, Optimization of DFA-Based
Pattern Matchers, implementation of lexical analyzers, lexical-analyzer generator, LEX-
compiler, Formal grammars and their application to syntax analysis, BNF notation,
ambiguity, YACC. The syntactic specification of programming languages: Context free
grammars, derivation andparse trees, capabilities of CFG.
Module II Basic Parsing Techniques
Parsers, Shift reduce parsing, operator precedence parsing, top down parsing, predictive
parsers Automatic Construction of efficient Parsers: LR parsers, the canonical Collection of
LR (0) items, constructing SLR parsing tables, constructing Canonical LR parsing tables,
Constructing LALR parsing tables, using ambiguous grammars, an automatic parser
generator, and implementation of LR parsing tables.
Module III Syntax Directed Translation:
Syntax-directed Translation schemes, Implementation of Syntax directed Translators,
Intermediate code, postfix notation, Parse trees & syntax trees, three address code,
quadruple & triples, translation of assignment statements, Boolean expressions, statements
that alter the flow of control, postfix translation, translation with a top down parser. More
about translation: Array references in arithmetic expressions, procedures call, declaration
sand case statements.
Module IV Symbol Table:
Data structure for symbols tables, representing scope information. Run-Time
Administration: Implementation of simple stack allocation scheme, storage allocation in
block structured language. Error Detection & Recovery: Lexical Phase errors, syntactic
phase errors semantic errors.
MODULE V Code Generation:
Design Issues, the Target Language. Addresses in the Target Code, Basic Blocks and Flow
Graphs, Optimization of Basic Blocks, Code Generator. Code optimization: Machine-
Independent Optimizations, Loop optimization, DAG representation of basic blocks, value
numbers and algebraic laws, Global Data-Flow analysis.
Mode of Evaluation: Class Quiz / Class Assignment / Group-Class Discussion

Theory without PBL


Components Internal (50) SEE

(5)Class Discussion
Assignment (5)

Attendance (4)
Semester

Quiz (6)
Cat-1 Cat-2 End
Marks
(15) (15) Exam
(50)

Total Marks 100

Theory with PBL


Components Internal (50) SEE

Discussion (5)Class
(5)ment Assign

Attendance (4)
Semester

(6)Quiz
Update Cat-1 Update Cat-2
End Exam
(15) (15)
(50)

Marks
(Scaled to 6)PBL-1

(Scaled to 6)PBL-2
to 9)CAT-1 (Scaled

to 9)CAT-2 (Scaled

Total Marks 100

Relationship between the Course Outcomes (COs) and Program Outcomes (POs)

Mapping between Cos and Pos

Mapped Program
Sl. No. Course Outcomes (COs)
Outcomes

Use language specifications behind the design of


1 PO1, PO2,
compiler.
2 Construct LL,SLR, CLR and LALR parsing table . PO1, PO2, PSO3,
3 Evaluate different intermediate code. PO1, PO3, PO4,
Implement different data structure and allocation
4 schemes for symbol table. PO1, PO4, PSO3

5 Developing optimized code. PO2, PO3


Apply modern tools and technologies for designing  PO1, PO2, PO3, PO4,
6 PO5, PSO3
new compiler.
CSE-313

Code
Course
Program

Lab
Outcome→
Compiler

Theory
Design

Name
Course

2
Engineering Knowledge
PO1

3
Problem analysis
PO2

2= addressed significantly
Design / development of solutions

1=addressed to small extent


PO3

2
Conduct investigations of complex problems
PO4

1
Modern tool usage
PO5
The engineer and society
PO6

3= addressed strongly (major part of course)


Environment and sustainability
PO7
Ethics
PO8
Individual or team work
PO9

1
Communication
PO10
Project management and finance
PO11
Life-long Learning
PO12
Ability to design real world applications using high performance computing
systems, computer networks and mobile computing systems
PSO1

Ability to apply contemporary technologies and tools associated with IOT,


Big Data, grid and cloud computing
PSO2

Ability to integrate the concepts of theoretical computer science, data


2

structure, algorithms and programming in to projects


PSO3

Ability to develop intelligent software systems by integrating the knowledge


of system sciences and intelligent systems.
PSO4
Course Outcomes Assessment

The theory part of this course strongly contributes towards the program outcomes Problem
Analysis (PO2), Design/development of solutions (PO3).

The course addresses significantly towards Program outcome Engineering Knowledge (PO1)
and Ability to apply contemporary technologies and tools like Lex, Yaac (PSO2).

Two evaluation methods will be used for the evaluation of course and program outcomes of this
course.

The outcomes will be measured based on student performance on specific questions that will be
part of the end term examination (ETE). One 20 marks will test the ability of the student for
Problem Analysis (PO2) and Design/development of solutions (PO3). The outcome based
question is put in question serial number . That question is compulsory so all students will be
expected to attempt it.

Direct Measurement Report


CSE313 Outcome (1,2,3) and PSO(1) Report Form
1. Measure– percent of students scoring at least 60% marks for the question in the SEE
examination.
Rubric - none
Target – 60% of students

2. Besides that various assignments and all CAT-1 / CAT-2 questions will also be
mapped to one of the outcomes associated with the course. The attainment level of
the outcomes associated with the course may also be calculated with the
performance of the students in respective assignments and all CAT-1 / CAT-2
questions.

Indirect Measurement
In end term survey, the questions are asked from the students about the attainment of
course outcomes associated with a particular course.

You might also like