Subject

Programming Languages and Compilers

1. Course Title Programming Languages and Compilers
Programming languages and compilers
2. Code F23L3S112
3. Study Programme
4. Organizer of the study programme (unit, institute, department or division) Faculty of Computer Science and Engineering
5. Degree level (first, second, third cycle) First Cycle
6. Academic year / semester 8 / Summer
7. Number of ECTS credits 6
8. Teacher Mile Jovanov
9. Prerequisites for enrolling in the course Algorithms and Data Structures or Applied Algorithms and Data Structures
10. Objectives of the course programme (competences) Students should understand the evolution and spectrum of programming languages, and grasp the process of constructing a compiler that will elevate them as programmers who have delved into the essence of programming languages.
11. Course content Lectures:
1. Вовед во предметот. Развој на програмските јазици
2. Спектар на програмсите јазици
3. Разработка на структурата на компајлерот со изучување на структурата на даден програмски јазик
4. Развој на граматики и синтаксно ориентирани преведувачи
5. Лексичка анализа
6. Синтакса и семантика, синтаксни дрва
7. Парсирање: bottom-up и top-down
8. Препроцесирање, поправка на грешки, симболни табели
9. Проверка на типови, семантичка проверка
10. Генерирање на код
11. Оптимизација на код
12. Bootstrapping. Конструкција на компајлер

Practical Classes:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
12. Learning methods Предавања, вежби, проекти, семинарски работи
13. Total available time 6 ECTS x 30 hours = 180 hours
14. Distribution of available time 30 + 45 + 15 + 15 + 75 = 180 hours
15. Forms of teaching activities
15.1. Lectures - theoretical instruction 30 hours
15.2. Exercises (laboratory, auditory), seminars, teamwork 45 hours
16. Other forms of activities
16.1. Project assignments 15 hours
16.2. Independent assignments 15 hours
16.3. Home study 75 hours
17. Assessment method
17.1. Tests 0 points
17.2. Seminar paper / project (presentation: written and oral) 15 points
17.3. Activities and learning 16 points
17.4. Final exam 40 points
18. Grading criteria (points / grade)
up to 50 points5 (five) (F)
from 51 to 60 points6 (six) (E)
from 61 to 70 points7 (seven) (D)
from 71 to 80 points8 (eight) (C)
from 81 to 90 points9 (nine) (B)
from 91 to 100 points10 (ten) (A)
19. Requirement for obtaining a signature and taking the final exam Completed activities 15, 16
20. Language of instruction Macedonian and English
21. Method for monitoring the quality of teaching Surveys, conversation with students.
22. Literature
22.1. Required literature
1. Alfred Aho, Monica S. Lam, RaviSethi, Jeffrey D. Ullman | Compilers-Principles, Techniques and tools | Pearson Education, Inc | 2007
2. F.J.F. Benders; J.W. Haaring; T.H. Janssen; D. Meert; A.C. van Oostenrijk | Compiler Construction A Practical Approach | 2003
3. Niklaus Wirth | Compiler Construction | Addison-Wesley | 1996
22.2. Additional literature
No. Author Title Publisher Year