Documente Academic
Documente Profesional
Documente Cultură
FACULTY OF INFORMATICS
Course Information:
Instructor’s Contact Information: Academic Year: 2019
Office: Year :III
Phone: Semester: II
Email: Meeting day:
Office Hours: Meeting time:
Meeting location:
Course Description:
The course builds on the student's 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, top-down
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.
1|Page
Course Goals or Learning Outcomes:
By the end of this course, students will be able to:
Implementing a small compiler using modern compiler writing tools.
Providing the student with skills and knowledge (such as lexical analysis and parsing)
which are applicable to a broad range of computer science application areas (such as text
editors, information retrieval, etc...).
Prerequisites: Formal Language and Automata Theory
Required Texts:
Text Books:
T1: Alfred Aho, Ravi Sethi, V.Jeffery Ullman D. “COMPILERS PRINCIPLES, TECHINQUES
AND TOOLS “, Addison- Wesley, 1988.
Other Reference Books:
R1: Allen Holub l. “Compiler Design in C”, Prentice Hall of India. 1990.
R2: Charles N.Fischer Richard J.Leblanc, “Crafting a compiler with C”, Benjamin Cummings,
1991.
Summary of Teaching Learning Methods:
The learning–teaching methodology will be student-centered with appropriate guidance of
instructor/s during the students’ activities .There will be Lecture, Demonstrations, and Tutorials,
Reading assignments, Group Discussions and Lab work.
Reading
Week/Date Topics to be discussed
Phases of a Compiler
Text book: T1
Computer Language Representation
Week 1-2
Compiler Construction Tools Chapter – 1
Token Specification
Recognition of Tokens
Recognition machine Chapter – 2
Week 3-4
NFA to DFA
Error Recovery
A typical lexical analyzer generator
2|Page
DFA Analysis
Parsing: Top Down Parsing
Predictive Parsing
Top-down parsing- Principles of CFG
Regular Expressions Vs. Context Free
Grammar
Top-down parsing Implementation-
Recursive Descent Parsing
Non recursive Predictive Parsing
LL(1) Grammar Chapter – 3
Week 5-8
Bottom-up parsing Handles
Stack Implementation of Shift reduce
Parsing
LR parsers-Implementation
LR Parsing Algorithm
SLR
Canonical & LALR
Error recovery
Parser generator
Syntax Directed
Chapter – 4
Translation: Syntax-directed definitions,
construction of syntax trees
Week 9-10
Type Checking: Type Chapter – 5
systems, type conversions
Symbol table
Week 11 Hash Tables Chapter – 6
Representing Scope Information
Intermediate languages –
Three Address Code rules
Quadruples
Declarations
Week 12-13 Chapter –7
Declarations in procedures
Flow control statements
Back patching
Procedure calls
3|Page
Register Allocation
DAG representation
Peephole Optimization Techniques
Introduction to code optimization Chapter – 9
Week 16
Assessment Arrangements:
List the assessment methods along with weight distribution.
Test #1 20%
Final examination 40%
Assignments (two) 15%
Quizzes, reading assessment and tutorial
10%
contributions
Project 15%
Total 100%
4|Page