Mshabab Alrizah

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.

DateWEEKTopicSlidesAssignment/ HW DueNote
12-Sep3 LAB
13-Sep3Introduction
15-Sep3Overview of compiler phases
19-Sep4Overview of compiler phases
20-Sep4The role of lexical analysis (token, lexeme, pattern), token attributes and input buffer.
22-Sep4
26-Sep5The role of lexical analysis (token, lexeme, pattern), token attributes and input buffer.
27-Sep5Specification of token, operation on languages
29-Sep5Regular expressions
3-Oct6Lex & Yacc LAB
4-Oct6Regular expressions
6-Oct6Regular expressions
10-Oct7Regular definition, recognition of token and transition diagram. LAB
11-Oct7Regular definition, recognition of token and transition diagram.
13-Oct7Regular definition, recognition of token and transition diagram.
17-Oct8
18-Oct8
20-Oct8Midterm Mid
24-Oct9Lex & Yacc LAB
25-Oct9Implementing a transition diagram.
27-Oct9Finite automata (DFA, NFA)
31-Oct10Lex & Yacc LAB
1-Nov10Finite automata (DFA, NFA)
3-Nov10Finite automata (DFA, NFA)
7-Nov11The Role of the parser.
8-Nov11Context free Grammar.
10-Nov11Context free Grammar.
14-Nov12Context free Grammar. LAB
15-Nov12Left recursive and left factoring.
17-Nov12Left recursive and left factoring.
21-Nov13Top Down Parsing (recursive descent parser-predictive parser, Non recursive predictive parsing). LAB
22-Nov13Top Down Parsing (recursive descent parser-predictive parser, Non recursive predictive parsing).
24-Nov13Top Down Parsing (recursive descent parser-predictive parser, Non recursive predictive parsing).
28-Nov14Holiday
29-Nov14Holiday
1-Dec14Holiday
5-Dec15Bottom Up Parsing (LR parser).
6-Dec15Bottom Up Parsing (LR parser).
8-Dec15Bottom Up Parsing (LR parser).
12-Dec16Bottom Up Parsing (LR parser). LAB
13-Dec16Revision.
15-Dec16Revision.
19-Dec17Holiday LAB
20-Dec17Lab Exam and tutorial Lab exam
22-Dec17
26-Dec18Final Exam Final Examination
27-Dec18Final Exam
29-Dec18Final Exam