First Cycle - Faculty of Engineering - Computer Engineering (English)
Y : Year of Study S : Semester
Course Unit Code Course Unit Title Type of Course Y S ECTS
CSE4061 Compiler Design Compulsory 4 7 5
Objectives of the Course
The purpose of this course is to help the student learn the basic concepts of compiler design such as lexical and syntax analysis, code optimization.
Learning Outcomes
1 Examine code generation.
2 Develop a new compiler
3 Build a run-time environment
4 Discover code optimization
5 Asses about the definitions of compiler structure, lexical analysis, syntax analysis and type checking
Mode of Delivery
Formal Education
Recommended Optional Programme Components
None
Course Contents
Compiler structure
Lexical analysis (including regular expressions and finite automata)
Syntax analysis (including context-free grammars, LL parsers, bottom-up parsers, and LR parsers)
Syntax-directed translation
Type checking (including type conversions and polymorphism)
Run-time environment (including parameter passing, symbol tables, and storage allocation)
Code generation (including intermediate code generation)
Code optimization
Weekly Detailed Course Contents
Week Theoretical Practice Laboratory
1 Introduction to Compilers
2 Lexical analysis
3 regular expressions
4 finite automata
5 Syntax analysis
6 context-free grammars
7 LL parsers, bottom-up parsers, and LR parsers
8 Midterm study
9 Midterm
10 Type checking
11 Type conversion and polymorphism
12 Run-time environment (including parameter passing, symbol tables, and storage allocation)
13 Code generation (including intermediate code generation)
14 Code optimization
15 Parallel machines
16 JIT compiling
17 Final
Recommended or Required Reading
Al Aho, Ravi Sethi, and Jeff Ullman, Compilers: Principles, Tools, and Techniques, Addison-Wesley, 1986.
Andrew Appel, Modern Compiler Implementation in ML/Java/C, Cambridge UP, 1998.
Steve Muchnick, Advanced Compiler Design & Implmentation, Morgan Kaufmann, 1997.
Christopher Fraser and David Hanson,A Retargetable C Compiler: Design and Implementation, Benjamin/Cummings, 1995
Planned Learning Activities and Teaching Methods
lecture notes, projects, quizzes
Assessment
AssessmentQuantityWeight
Term (or Year) Learning Activities60
End Of Term (or Year) Learning Activities40
Total100
Term (or Year) Learning ActivitiesQuantityWeight
Midterm Exam140
Project130
Homework Exam130
Total100
End Of Term (or Year) Learning ActivitiesQuantityWeight
Final Exam1100
Total100
Language of Instruction
Language Codes
Work Placement(s)
None
Workload Calculation
Activities Number Time (hours) Total Work Load (hours)
Theoretical 14 3 42
Midterm Preparation 1 10 10
Final Preparation 1 10 10
Home Work 5 10 50
Project 1 20 20
Total 22 53 132
Contribution of Learning Outcomes to Programme Outcomes
PO 1PO 2PO 3PO 4PO 5PO 6PO 7PO 8PO 9PO 10PO 11PO 12PO 13PO 14PO 15PO 16
LO 10000000000000000
LO 20000000000000000
LO 30000000000000000
LO 40000000000000000
LO 50000000000000000

^