Sunteți pe pagina 1din 4

UNIVERSITY OF GONDAR

FACULTY OF INFORMATICS

DEPARTMENTS OF COMPUTER SCIENCE


Department: Computer Science

Module Code: CoSc-M3111


Module Title: Compiler Development
Module ECTS: 11

Course Tile: Compiler Design Course Code: CoSc-3112

Instructor Name: Habtamu Michael Course ECTS: 6

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.

Summary of Assessment Methods:


Evaluation will carry out based on relevant continuous assessments (class assessments,
assignments and laboratory works) and significantly scheduled and designed final examination.
Schedule
The following is an outline of the order in which syllabus contents will be covered. The exact
dates and due dates for assignments and exams can be found on the class calendar and are
subject to change with notice.

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

Code generation – Chapter – 8


Week 14-15
 Simple Code generator

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

S-ar putea să vă placă și