Course Code |
CSC373 |
Course Title |
Compiler Construction |
Credit Hours |
3+0 |
Prerequisites by Course(s) and Topics |
Data Structure, Theory of automata |
Assessment Instruments with Weights (homework, quizzes, midterms, final, programming assignments, lab work, etc.) |
SESSIONAL (Quizzes, Assignments, Presentations) =25 %
Midterm Exam =25 %
Final Exam = 50%
|
Course Coordinator |
M. Basit Ali |
URL (if any) |
|
Current Catalog Description |
|
Textbook (or Laboratory Manual for Laboratory Courses) |
Compilers: Principles, Techniques, and Tools By Alfred V. Aho, Ravi Sethi, Jeffrey D. Ullman, Contributor Jeffrey D. Ullman, Addison-Wesley Pub. Co., 2nd edition, 2006 |
Reference Material |
1. Modern Compiler Design, by Dick Grune, Henri E. Bal, Ceriel J. H. Jacobs, Koen G. Langendoen, John Wiley, 2000. 2. Modern Compiler Implementation in C, by Andrew W. Appel, Maia Ginsburg, Contributor Maia Ginsburg, Cambridge University Press, 2004. 3. Modern Compiler Design by Dick Grune, Henri E. Bal, Ceriel J. H. Jacobs, Koen G. Langendoen, 2003, John Wiley & Sons. |
Course Goals |
|
Course Learning Outcomes (CLOs): |
At the end of the course the students will be able to: | Domain | BT Level* |
* BT= Bloom’s Taxonomy, C=Cognitive domain, P=Psychomotor domain, A= Affective domain |
|
|
|
Topics Covered in the Course, with Number of Lectures on Each Topic (assume 15-week instruction and one-hour lectures) |
Week | Lecture | Topics Covered |
Week 1 |
1 |
General Introduction |
|
2 |
Detailed introduction of Compiler, Preprocessor, Assembler, Linker/Loader, Interpreter |
Week 2 |
3 |
Compiler, History of Compiler, Properties of Compiler |
|
4 |
Compilation two parts, Compilation Process in General |
Week 3 |
5 |
Compilation Process in Brief: Lexical Analysis, Syntax Analysis |
|
6 |
Compilation Process in Brief: Sementic Analysis, Intermediate Code, Code Optimization, Code Generation |
Week 4 |
7 |
Symbol Table: Construction of Symbol table, Interaction Between the symbol table and other phases of compiler |
|
8 |
One-Pass Compiler |
Week 5 |
9 |
Two-Pass Compiler |
|
10 |
Back end of Compiler |
Week 6 |
11 |
Chapter 3: Lexical Analysis, Function of Lexical Analyzer |
|
12 |
Input Buffering, Specification of Tokens |
Week 7 |
13 |
Conversion of Regular Expression into NFA |
|
14 |
Conversion of Regular Expression into DFA |
Week 8 |
1 hours |
Mid Term |
Week 9 |
15 |
Conversion into minimized DFA |
|
16 |
Conversion of DFA into minimized DFA |
Week 10 |
17 |
What are Grammars? Context-Free Grammar, CFG Terminologies, Examples |
|
18 |
Syntax Analysis |
Week 11 |
19 |
Define Parser, Role of Parser, and Derivations, Types of Derivations |
|
20 |
Parse Tree, Types of Parse Tree, Examples and Ambiguity Examples |
Week 12 |
21 |
Precedence, Examples and Left-Recursive |
|
22 |
Types of Parsing, Top-Down Parsing Introduction |
Week 13 |
23 |
Bottom Up Parsing, Backtracking, Predictive Parsesr |
|
24 |
Recursive Descent Parser (RDP) construction rules |
Week 14 |
25 |
Recursive Descent Parser (RDP) construction algorithm implementation and LL(1) Parser Construction Method |
|
26 |
First Function with examples and FOLLOW Function with examples |
Week 15 |
27 |
Input String Running Through LL(1) Table/Presentations |
|
28 |
Bottom Up Parsing and Shift Reduce Parsing |
Week 16 |
29 |
LR(0) Parse Table |
|
30 |
SLR(1) Parse Table |
Week 17 |
2 hours |
Final Term |
|
Laboratory Projects/Experiments Done in the Course |
|
Programming Assignments Done in the Course |
|