Learning Outcome Compiler
Learning Outcome Compiler
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:
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:
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:
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