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

Compiler Design

The document outlines the course structure for Compiler Design, including prerequisites, objectives, outcomes, and content. It emphasizes programming skills in languages like C and Java, and covers various phases of compilation such as lexical analysis, syntax analysis, and code generation. The evaluation scheme includes tests, assignments, quizzes, and attendance, with a focus on achieving specific course outcomes related to compiler construction.

Uploaded by

Mansi Salar
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views

Compiler Design

The document outlines the course structure for Compiler Design, including prerequisites, objectives, outcomes, and content. It emphasizes programming skills in languages like C and Java, and covers various phases of compilation such as lexical analysis, syntax analysis, and code generation. The evaluation scheme includes tests, assignments, quizzes, and attendance, with a focus on achieving specific course outcomes related to compiler construction.

Uploaded by

Mansi Salar
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 3

Compiler Design

COURSE CODE: 18B11CI612


COURSE CREDITS: 3
CORE/ELECTIVE: CORE
: 3-0-0

Pre-requisites: Perquisite for this course is programming languages like C, C++, java and basic
knowledge of formal language and automata theory. This is a programming-intensive course. The
primary languages used are C and Java and familiarity with them is assumed.

Course Objectives:
1. To understand the basic concept of compilation particular, lexical analyzer, syntax and semantic analysis,
code generation and optimization phases of compilation.
2. Ability to create lexical rules and grammars for a programming language.
3. Ability to use flex or similar tools to create a lexical analyzer and Yacc/Biscon tools to create a parser
4. Ability to implement a various parser such as a bottom-up SLR parser without using any compiler-
generation tools
5. Ability to implement a various intermediate code generation techniques without using any compiler
generation tools
6. Ability to implement various code optimizing techniques without using any compiler-generation tools
7. Ability to implement semantic rules into a parser that performs attribution while parsing
8. Ability to design a compiler for a concise programming language.
Course Outcomes
Level of
S. No. Course Outcomes
Attainment
To understand the basic concept of compilation particular, lexical analyzer, syntax
CO-1 and semantic analysis, code generation and optimization phases of compilation Familiarity
CO-2 Ability to create lexical rules and grammars for a programming language Familiarity
Ability to use flex or similar tools to create a lexical analyzer and Yacc/Biscon tools Computational
CO-3
to create a parser skills
Ability to implement a various parser such as a bottom-up SLR parser without using
CO-4 Technical skills
any compiler-generation tools
Ability to implement a various intermediate code generation techniques without
CO-5 Technical skills
using any compiler generation tools
Ability to implement various code optimizing techniques without using any
CO-6 Technical skills
compiler-generation tools
Ability to implement semantic rules into a parser that performs attribution while
CO-7 Assessment
parsing
CO-8 Ability to design a compiler for a concise programming language Assessment
Course Contents:
Lectures
Unit Contents
required
Introduction: Compilers, Analysis of Source Program, Phases of Compiler,
1 Issues in a Compiler Structure, Major Data Structures in 3
Compiler, Bootstrapping and Porting
Lexical Analysis: Role of the Lexical Analyzer, Scanning Process- Input
Buffering, Specification of Tokens, Recognition of Tokens, Regular Language,
Approved in Academic Council held on 25.10.2018
2 Finite Automata, Regular Expression, Regular 4
Expression to Finite automata, Scanner Generator (lex, flex)
Syntax Analysis: Parsing Process, Context-Free Grammar, Handle, Ambiguity,
Parse Tree, Push-Down Automata , Top Down Parsing: Basic Concept, Recursive
Descent Parsing, First Function, Follow Function, Conflicts-Shift Reduce,
Reduce-Reduce, LL(1) Grammar, LL(1) Parser, Error Recovery, Bottom up
3 parsing :Basic Concept, Shift Reduce Parsing, Operator Grammar, Operator 12
Precedence Parsing, Augmented Grammar, LR(0) Item Set, LR(0) Parsing,
LR(1) Item Set, SLR(1) Parsing, Canonical LR Parser, LALR parsing, Error
Recovery, YACC and BISON
Semantic Analysis: Syntax-Direct Definitions, Implementation of Syntax-
4 directed Translators, Bottom-up Evaluation of S-attributed 5
Definitions, L-attributed Definitions, and Top-down Translation
Intermediate Code Generation: Postfix Notation, Parse Trees & Syntax Trees,
Three Address Code, Quadruple & Triples, Translation of Assignment
Statements, Boolean Expressions, Statements That Alter Flow of Control,
5 5
Postfix Translation, Array References in Arithmetic Expressions, Procedures
Call, Declarations and Case Statements
6 Code Generation: Issues in the design of a Code Generator, Target Machine,
Run-Time Storage Management, Basic blocks and Flow graphs 4
Code Optimization: Machine-Independent Optimizations, Machine Dependent
7 Optimization, Loop optimization, DAG representation of basic blocks, value
5
numbers and algebraic laws, Global Data-Flow analysis
Run-time environment and Symbol: Procedure activation, parameter passing,
8 value return, memory allocation, and scope, Symbol Table, Definition,
4
Structure, Types, symbol attributes and management
Total Lectures 42
Suggested Text Book(s):
1. Compilers: Principles, Techniques, and Tools by Alfred V. Aho, Monica S. Lam, Ravi Sethi, and Jeffrey
D. Ullman, Pearson Publisher
2. Compiler Construction, Kenneth C. Louden, 582 pages
3. Modern Compiler Implementation in C, Andrew W. Appel, 544 pages
Suggested Reference Book(s):
1. http://ecomputernotes.com/compiler-design
2. http://www.diku.dk/~torbenm/Basics/basics_lulu2.pdf
Evaluation Scheme:
S. No Exam Marks Duration Coverage / Scope of Examination
1 T-1 15 1 Hour. Syllabus covered upto T-1
2 T-2 25 1.5 Hours Syllabus covered upto T-2
3. T-3 35 2 Hours Entire Syllabus
4. Teaching Entire Semester Assignment (2) - 10
Assessment
Quizzes (2) - 10

Attendance - 5

Approved in Academic Council held on 25.10.2018


Course Outcomes (COs) contribution to the Programme Outcomes (POs)
Course

Average
PO-10

PO-11

PO-12
outcomes

PO-1

PO-2

PO-3

PO-4

PO-5

PO-6

PO-7

PO-8

PO-9
(Compiler
Design)
CO-1 3 2 2 1 2 3 3 2 1 3 2 1 2.1

CO-2 3 3 2 1 1 3 3 1 3 3 3 1 2.3

CO-3 3 3 2 1 2 2 2 1 2 3 3 2 2.2

CO-4 3 3 3 2 2 2 3 2 2 1 2 2 2.3

CO-5 3 3 3 2 2 2 2 2 1 3 2 1 2.2

CO-6 3 3 3 3 2 3 3 2 2 3 2 2 2.6

CO-7 3 3 3 3 2 3 3 1 2 3 2 2 2.5

CO-8 3 3 3 3 2 3 3 2 2 2 3 2 2.6

Average 3 2.9 2.6 2 1.9 2.6 2.8 1.6 1.9 2.6 2.4 1.6

Approved in Academic Council held on 25.10.2018

You might also like