Theory of Compilers
قال رسول اللهِ صلّى اللهُ عليهِ وسلَّم: (إِنَّ الله يُحِبُ إذا عَمِل أحَدُكُم عَمَلا أنْ يُتْقِنَه)
Announcements
Please make sure to check this section frequently!
Announcement #2 9/15/2021: The office hours are updated. They are now two slots: Monday 9 AM-11 AM and Thursday 2 PM-4 PM
About the course
All the software running on computers or smart devices is written in some programming languages. However, the source code of the software must be translated into a form that allows the machine to understand and execute it. The compiler is a software system that is in the middle between the source code and the machine and does the translation.
In this course, we teach compilers from different perspectives and angles. The course contains a lot of lessons, activities, and fun that help you to understand your code in-depth how the machine sees your code!
Instructor
Dr. Mshabab Alrizah
Location: Faculty office 6
Office hours: Monday 9 AM-11 AM and Thursday 2 PM-4 PM
Lectures
Class Sunday: classroom 2
Class Monday: classroom 3
Class Wednesday: online (Blackboard)
Prerequisites
Concepts of Programming Language – (278 CSM-3)
Textbook(s)
Compilers: Principles, Techniques, and Tools (2nd Edition) by Alfred Aho, Monica Lam, Ravi Sethi, Jeffrey Ullman. Link to Amazon (Click here)
More resours
TBA
Homework and programming assignments
Assignments #1:
Assignment #2:
Assignment #3:
Evaluation and grade
Assignments: 5 % (Assignement1, assignement2, …)
Lab assignments: 5% (Lab1, Lab2,….)
Quizzes: 5% (Quize1, Quize2,…)
Lab Quiz: 5%
One Midterm exams: 20%
Lab exam and tutorial: 10%
Final exam: 50%
Schedule
This schedule is subject to change depending on how the course progresses.
Date | WEEK | Topic | Slides | Assignment/ HW Due | Note |
12-Sep | 3 | LAB | |||
13-Sep | 3 | Introduction | |||
15-Sep | 3 | Overview of compiler phases | |||
19-Sep | 4 | Overview of compiler phases | |||
20-Sep | 4 | The role of lexical analysis (token, lexeme, pattern), token attributes and input buffer. | |||
22-Sep | 4 | ||||
26-Sep | 5 | The role of lexical analysis (token, lexeme, pattern), token attributes and input buffer. | |||
27-Sep | 5 | Specification of token, operation on languages | |||
29-Sep | 5 | Regular expressions | |||
3-Oct | 6 | Lex & Yacc | LAB | ||
4-Oct | 6 | Regular expressions | |||
6-Oct | 6 | Regular expressions | |||
10-Oct | 7 | Regular definition, recognition of token and transition diagram. | LAB | ||
11-Oct | 7 | Regular definition, recognition of token and transition diagram. | |||
13-Oct | 7 | Regular definition, recognition of token and transition diagram. | |||
17-Oct | 8 | ||||
18-Oct | 8 | ||||
20-Oct | 8 | Midterm | Mid | ||
24-Oct | 9 | Lex & Yacc | LAB | ||
25-Oct | 9 | Implementing a transition diagram. | |||
27-Oct | 9 | Finite automata (DFA, NFA) | |||
31-Oct | 10 | Lex & Yacc | LAB | ||
1-Nov | 10 | Finite automata (DFA, NFA) | |||
3-Nov | 10 | Finite automata (DFA, NFA) | |||
7-Nov | 11 | The Role of the parser. | |||
8-Nov | 11 | Context free Grammar. | |||
10-Nov | 11 | Context free Grammar. | |||
14-Nov | 12 | Context free Grammar. | LAB | ||
15-Nov | 12 | Left recursive and left factoring. | |||
17-Nov | 12 | Left recursive and left factoring. | |||
21-Nov | 13 | Top Down Parsing (recursive descent parser-predictive parser, Non recursive predictive parsing). | LAB | ||
22-Nov | 13 | Top Down Parsing (recursive descent parser-predictive parser, Non recursive predictive parsing). | |||
24-Nov | 13 | Top Down Parsing (recursive descent parser-predictive parser, Non recursive predictive parsing). | |||
28-Nov | 14 | Holiday | |||
29-Nov | 14 | Holiday | |||
1-Dec | 14 | Holiday | |||
5-Dec | 15 | Bottom Up Parsing (LR parser). | |||
6-Dec | 15 | Bottom Up Parsing (LR parser). | |||
8-Dec | 15 | Bottom Up Parsing (LR parser). | |||
12-Dec | 16 | Bottom Up Parsing (LR parser). | LAB | ||
13-Dec | 16 | Revision. | |||
15-Dec | 16 | Revision. | |||
19-Dec | 17 | Holiday | LAB | ||
20-Dec | 17 | Lab Exam and tutorial | Lab exam | ||
22-Dec | 17 | ||||
26-Dec | 18 | Final Exam | Final Examination | ||
27-Dec | 18 | Final Exam | |||
29-Dec | 18 | Final Exam |