BÄ°L744 - COMPILER DESIGN

Course Name Code Semester Theory
(hours/week)
Application
(hours/week)
Credit ECTS
COMPILER DESIGN BÄ°L744 Any Semester/Year 3 0 3 8
PrequisitesNone.
Course languageEnglish
Course typeElective 
Mode of DeliveryFace-to-Face 
Learning and teaching strategiesLecture
Preparing and/or Presenting Reports
Problem Solving
Project Design/Management
 
Instructor (s)
Course objectiveThe objective of this course is to teach main paradigms in compiler construction.  
Learning outcomes
  1. After completing the course, the students learn fundamental concepts of compiler design.
  2. Students learn lexical analysis.
  3. Students learn top-down and bottom-up parsing methods.
  4. Students learn type-checking routines.
  5. Students learn syntax-directed translation.
  6. Students learn intermediate code generation, code generation and code optimization.
  7. Students learn error-recovery methods.
Course ContentFundamental concepts of compiler design.
Lexical analysis.
Syntax analysis.
Type checking and syntax-directed translation.
Intermediate-code generation, code generation and code optimization.
Error recovery. 
References1. Aho V.A., Lam M.S., Sethi R., and Ullman J.D., Compilers: Principles, Techniques, and Tools, 2nd Ed., Addison-Wesley, 2007. 

Course outline weekly

WeeksTopics
Week 1Introduction to compiling.
Week 2Lexical analysis.
Week 3Lexical analysis.
Week 4Syntax analysis ? Context-free grammars.
Week 5Syntax analysis ? Top-down parsing and LL parsing.
Week 6Syntax analysis ? Bottom-up parsing.
Week 7Syntax analysis ? LR parsing.
Week 8Midterm
Week 9Syntax directed translation ? Attribute definitions and their evaluations.
Week 10Semantic analysis and type-checking.
Week 11Runtime organization.
Week 12Intermediate-code generation.
Week 13Code generation.
Week 14Code optimization.
Week 15Final exam preparation
Week 16Final Exam

Assesment methods

Course activitiesNumberPercentage
Attendance00
Laboratory00
Application00
Field activities00
Specific practical training00
Assignments00
Presentation00
Project130
Seminar00
Midterms120
Final exam150
Total100
Percentage of semester activities contributing grade succes050
Percentage of final exam contributing grade succes050
Total100

WORKLOAD AND ECTS CALCULATION

Activities Number Duration (hour) Total Work Load
Course Duration (x14) 14 3 42
Laboratory 0 0 0
Application000
Specific practical training000
Field activities000
Study Hours Out of Class (Preliminary work, reinforcement, ect)14570
Presentation / Seminar Preparation000
Project15555
Homework assignment000
Midterms (Study duration)12020
Final Exam (Study duration) 13030
Total Workload31113217

Matrix Of The Course Learning Outcomes Versus Program Outcomes

D.9. Key Learning OutcomesContrubition level*
12345
1. Graduates should have a mastery of computer science as described by the core of the Body of Knowledge.   X 
2. Graduates need understanding of a number of recurring themes, such as abstraction, complexity, and evolutionary change, and a set of general principles, such as sharing a common resource, security, and concurrency.    X 
3. Graduates of a computer science program need to understand how theory and practice influence each other.    X
4. Graduates need to think at multiple levels of detail and abstraction.   X  
5. Students will be able to think critically, creatively and identify problems in their research.    X
6. Graduates should have been involved in at least one substantial project.     X
7. Graduates should realize that the computing field advances at a rapid pace.     X
8. Graduates should conduct research in an ethical and responsible manner.   X  
9. Graduates should have good command of technical terms in both Turkish and English.    X
10. Graduates should understand the full range of opportunities available in computing.  X  
11. Graduates should understand that computing interacts with many different domains.     X
12. Graduates should develop the knowledge acquired at master level and apply scientific methods in order to solve scientific problems.     X

*1 Lowest, 2 Low, 3 Average, 4 High, 5 Highest