Sie sind auf Seite 1von 4

Graphic Era Hill University, Bhimtal Campus

Department of Computer Science & Application


Learning Outcome
Subject Name: Compiler Design

Faculty Name: Sandeep K. Budhani

Semester/ Year: B.Tech VI Sem

Branch: CSE

Learning Objective:
The course builds on the students core knowledge of languages, grammars and programming
and provides an opportunity to see how these core areas can come together to form an
application area. Also it imparts the knowledge about the following:
To learn basic techniques used in compiler construction such as lexical analysis, topdown and bottom-up parsing, context-sensitive analysis, and intermediate code
generation.
To learn basic data structures used in compiler construction such as abstract syntax trees,
symbol tables, three-address code, and stack machines.
To learn software tools used in compiler construction such as lexical analyzer generators,
and parser generators.

Prerequisites:

Basic knowledge in Theory of Computations, Data Structures and Algorithms.


Experience with programming in imperative languages such as C/C++.
Lexical Analysis, Context Free Grammars, Parser.
Unit 1 (Introduction, Lexical analysis)

Learning Objective:
In this unit student will learn about the different phases of compiler, types and design
architecture of compiler with basic knowledge of compiler construction tools like LEX and
YACC. Student will learn about Lexical analysis of a program, specification of tokens and the
role of tokens in the lexical analysis of the program.
Learning Outcome:
At the end of this unit, student is expected to be able:

To identify the tokens


To describe the design of a compiler including its phases and components
To make the lexical analysis of program
To describe the role of the compiler in ensuring the security, privacy and integrity of data

Unit 2 (Syntax Analysis)


Learning Objective:
In this unit student will learn about ambiguous grammar, classification of grammar, syntax tree
or abstract tree, role of parser, parser generator and parsing techniques e.g. top-down parsing,
bottom-up parsing and LR parser
Learning Outcome:At the end of this unit, student is expected to be able:

To check the syntax error in a given code


To design scanners and parsers using top-down as well as bottom-up paradigms
How executable code can be generated from an abstract/syntax tree?

Unit 3 (Syntax-Directed Translation)


Learning Objective:In this unit student will learn about syntax-directed definition, s-attribute definition, storage
organization, storage allocation strategies and the way to pass the parameter in programming.
Learning Outcome:
At the end of this unit, student is expected to be able:

To write the S-attribute and L- attribute definition of a given program


To reduce the space complexity of a program by using the different types of storage
strategies
To enhance the throughput by using the different types of techniques while writing code
Unit 4 (Intermediate Code Generation)

Learning Objective:
In this unit student will learn about the Intermediate code generation techniques and issues in the
design of code generator.
Learning Outcome:
At the end of this unit, student is expected to be able:

To write the intermediate code


To demonstrate the flow of control using directed acyclic graph.
To write the code form directed acyclic graph

How analysis can be used for register allocation?

Unit 5 (Code Optimization)


Learning Objective:In this unit student will learn about how to optimize the code?, different approaches of compiler
development with testing and maintenance.
Learning Outcome:
At the end of this unit, student is expected to be able:

Explain about various forms of code optimization

To optimize the code to reduce the LOC in a program


Optimization of basic blocks of code
How to plan a compiler?
How to develop a code for compiler?
How to test the code of compiler?

Learning Outcome:
Upon successful completion of this course, students will be able to:
1. Demonstrate a working understanding of the process of scanning through the identification of
the tokens of a programming language, the construction of regular expressions to define tokens,
the construction of finite state automata to recognize tokens, and the writing of a functioning
scanner to automatically identify the tokens in a program
2. Demonstrate a working understanding of the process of parsing through the application of
BNF to the definition of a programming language, the conversion of an BNF definition of a
programming language into an LL(1) context free grammar, the construction of an LL(1) table
for an LL(1) grammar, and the writing of a functioning recursive descent compiler based on said
LL(1) grammar
3. Demonstrate a working understanding of the process of semantic analysis through the
construction of semantic records based on parse trees, the construction of symbol tables, the
organization of run time memory, and the writing of a semantic analyzer for a compiler.
4. Design, analyze, implement, and test a working compiler for a small language
5. Write scanner using the (lex) scanner generator
6. Write parser using the (yacc) parser generator

Text Books:
Alfred V. Aho, Ravi Sethi & Jeffrey. D. Ullman, Compilers Principles, Techniques &
Tools,Pearson Education, third edition, 2007.
D.M.Dhamdhere, "System Programming and Operating Systems", 2nd Edition., Tata
Mcgraw Hill,1995
Web Links:
http://lambda.uta.edu/cse5317/notes/notes.html
www.cs.bilkent.edu.tr/~ilyas/courses/cs416/
www.compilers.net/Dir/Free/Books/index.htm
http://www.compilerconstruction.org
http://www.iis.ee.ic.ac.uk/yiannis/lp/
Signature of Faculty

Signature of HOD

Das könnte Ihnen auch gefallen