1. Course Title | Compilers | |||||||
2. Code | 3ФЕИТ07Л015 | |||||||
3. Study program | KTI | |||||||
4. Organizer of the study program (unit, institute, department) | Faculty of Electrical Engineering and Information Technologies | |||||||
5. Degree (first, second, third cycle) | First cycle | |||||||
6. Academic year/semester | III/6 | 7. Number of ECTS credits | 6.00 | |||||
8. Lecturer | ||||||||
9. Course Prerequisites | Passed: Data Structures and Algorithm Analysis | |||||||
10. Course Goals (acquired competencies): Introducing to the structure and steps for designing compilers and interpreters. Upon completion of the course students will be able to independently design and create a compiler/interpreter for the appropriate programming language. |
||||||||
11. Course Syllabus: Compiler/interpreter model; Structure and architecture of a compiler; Lexical analysis; Regular expressions; Symbol table; Introduction to parsing. Syntax analysis. Finite automata. Grammar. Top-down parsing. Bottom-up parsing. Semantic analysis and type checking. Run-time environment. Code Generation. Interpreter. Assembler, disassembler, linker and loader. Optimization Techniques. From syntactic tree to code. Local optimization. Global optimization. An explicit and implicit way of managing memory. Register allocation. Memory Management. Functional and logic programs. Parallel and distributed programs. |
||||||||
12. Learning methods: Laboratory exercises, practical work and lectures |
||||||||
13. Total number of course hours | 2 + 2 + 1 + 0 | |||||||
14. Distribution of course hours | 180 | |||||||
15. Forms of teaching | 15.1. Lectures-theoretical teaching | 30 | ||||||
15.2. Exercises (laboratory, practice classes), seminars, teamwork | 45 | |||||||
16. Other course activities | 16.1. Projects, seminar papers | 15 | ||||||
16.2. Individual tasks | 30 | |||||||
16.3. Homework and self-learning | 60 | |||||||
17. Grading | 17.1. Exams | 10 | ||||||
17.2. Seminar work/project (presentation: written and oral) | 40 | |||||||
17.3. Activity and participation | 0 | |||||||
17.4. Final exam | 50 | |||||||
18. Grading criteria (points) | up to 50 points | 5 (five) (F) | ||||||
from 51 to 60 points | 6 (six) (E) | |||||||
from 61 to 70 points | 7 (seven) (D) | |||||||
from 71 to 80 points | 8 (eight) (C) | |||||||
from 81 to 90 points | 9 (nine) (B) | |||||||
from 91 to 100 points | 10 (ten) (A) | |||||||
19. Conditions for acquiring teacher’s signature and for taking final exam | Laboratory exercises | |||||||
20. Language | Macedonian and English | |||||||
21. Method of monitoring of teaching quality | Internal evaluation and surveys | |||||||
22. Literature | ||||||||
22.1. Required Literature | ||||||||
No. | Author | Title | Publisher | Year | ||||
1 | Aho A.V., Lam M.S., Sethi Р., Ullman J.D. | Compilers: Principles, Techniques, and Tools, 2/E | Addison Wesley | 2007 | ||||
2 | Grune D.,Bal H.E., Jacobs C., Langendoen K.G. | Modern Compiler Design | John Wiley & Sons | 2000 | ||||
3 | Appel, Andrew W. | Modern Compiler Implementation in Java, 2nd ed. | Cambridge | 2002 |