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 |
Prequisites | None. | |||||
Course language | English | |||||
Course type | Elective | |||||
Mode of Delivery | Face-to-Face | |||||
Learning and teaching strategies | Lecture Preparing and/or Presenting Reports Problem Solving Project Design/Management | |||||
Instructor (s) | - | |||||
Course objective | The objective of this course is to teach main paradigms in compiler construction. | |||||
Learning outcomes |
| |||||
Course Content | Fundamental concepts of compiler design. Lexical analysis. Syntax analysis. Type checking and syntax-directed translation. Intermediate-code generation, code generation and code optimization. Error recovery. | |||||
References | 1. 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
Weeks | Topics |
---|---|
Week 1 | Introduction to compiling. |
Week 2 | Lexical analysis. |
Week 3 | Lexical analysis. |
Week 4 | Syntax analysis ? Context-free grammars. |
Week 5 | Syntax analysis ? Top-down parsing and LL parsing. |
Week 6 | Syntax analysis ? Bottom-up parsing. |
Week 7 | Syntax analysis ? LR parsing. |
Week 8 | Midterm |
Week 9 | Syntax directed translation ? Attribute definitions and their evaluations. |
Week 10 | Semantic analysis and type-checking. |
Week 11 | Runtime organization. |
Week 12 | Intermediate-code generation. |
Week 13 | Code generation. |
Week 14 | Code optimization. |
Week 15 | Final exam preparation |
Week 16 | Final Exam |
Assesment methods
Course activities | Number | Percentage |
---|---|---|
Attendance | 0 | 0 |
Laboratory | 0 | 0 |
Application | 0 | 0 |
Field activities | 0 | 0 |
Specific practical training | 0 | 0 |
Assignments | 0 | 0 |
Presentation | 0 | 0 |
Project | 1 | 30 |
Seminar | 0 | 0 |
Midterms | 1 | 20 |
Final exam | 1 | 50 |
Total | 100 | |
Percentage of semester activities contributing grade succes | 0 | 50 |
Percentage of final exam contributing grade succes | 0 | 50 |
Total | 100 |
WORKLOAD AND ECTS CALCULATION
Activities | Number | Duration (hour) | Total Work Load |
---|---|---|---|
Course Duration (x14) | 14 | 3 | 42 |
Laboratory | 0 | 0 | 0 |
Application | 0 | 0 | 0 |
Specific practical training | 0 | 0 | 0 |
Field activities | 0 | 0 | 0 |
Study Hours Out of Class (Preliminary work, reinforcement, ect) | 14 | 5 | 70 |
Presentation / Seminar Preparation | 0 | 0 | 0 |
Project | 1 | 55 | 55 |
Homework assignment | 0 | 0 | 0 |
Midterms (Study duration) | 1 | 20 | 20 |
Final Exam (Study duration) | 1 | 30 | 30 |
Total Workload | 31 | 113 | 217 |
Matrix Of The Course Learning Outcomes Versus Program Outcomes
D.9. Key Learning Outcomes | Contrubition level* | ||||
---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | |
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