Основи побудови компіляторів
Освітня програма: Програмна інженерія
Структурний підрозділ: Факультет комп'ютерних наук та кібернетики
Назва дисципліни
Основи побудови компіляторів
Код дисципліни
ННД.32
Тип модуля
Обов’язкова дисципліна для ОП
Цикл вищої освіти
Перший
Рік навчання
2023/2024
Семестр / Триместр
6 Семестр
Кількість кредитів ЕСТS
4
Результати навчання
ПРН07. Знати і застосовувати на практиці фундаментальні концепції, парадигми і основні принципи функціонування мовних, інструментальних і обчислювальних засобів інженерії програмного забезпечення.
ПРН13. Знати і застосовувати методи розробки алгоритмів, конструювання програмного забезпечення та структур даних і знань.
ПРН15. Мотивовано обирати мови програмування та технології розробки для розв’язання завдань створення і супроводження програмного забезпечення.
ПРН16. Мати навички командної розробки, погодження, оформлення і випуску всіх видів програмної документації.
Форма навчання
Очна форма
Попередні умови та додаткові вимоги
1. Знати: основи організації обчислювальної техніки, елементарні поняття з обраних розділів дискретної математики, зокрема, з теорії множин, теорії алгоритмів, графів, основи об’єктно-орієнтованого програмування на прикладі мов програмування C++ та/або Java.
2. Вміти: програмувати на мові програмування C/C++ або Java.
3. Володіти: елементарними навичками налагодження та тестування програмного забезпечення.
Зміст навчальної дисципліни
Мета дисципліни – опанування основ побудови компіляторів мов програмування. Вивчення устрою компіляторів, а також принципів лексичного та синтаксичного аналізу.
В результаті вивчення навчальної дисципліни студент повинен:
знати різновиди мовних процесорів та загальну структуру компілятора, підходи до лексичного та синтаксичного аналізу та відповідні розділи теорії автоматів та формальних мов, принципи побудови головних підсистем операційнї системи, алгоритми, що використовуються у цих підсистемах;
вміти розробляти системи лексичного та синтаксичного аналізу для мов програмування різного ступеня абстракції, аналізувати вихідний код системного програмного забезпечення на зразок операційних систем.
Рекомендована та необхідна література
1. Aho A. Compilers: Principles, Techniques, and Tools, 2nd ed. / Aho A., Lem M., Sethi R., Ullman J. — Addison Wesley, 2007. — 1007 p.
2. Tanenbaum A. Modern Operating Systems, 4th ed. / Tanenbaum A., Bos H. — Pearson, 2014. — 1136 p.
3. Hopcroft J. Introduction to Automata Theory, Languages, and Computation, 3rd ed. / John Hopcroft, Rajeev Motwani, Jeffrey Ullman. — Prentice Hall, 2006. — 750 p.
Заплановані освітні заходи та методи викладання
Лекції, лабораторні роботи, самостійна робота, тести, контрольна робота, домашні завдання, захист лабораторних робіт, іспит.
Методи та критерії оцінювання
- семестрове оцінювання:
1. Контрольна робота: РН 1.1, РН1.2 – 25 балів.
2. Тест/поточне оцінювання: РН 4.1 – 10 балів.
3. Лабораторні роботи 1-3: РН2.1, РН2.2, РН 3.1 – 30 балів.
- підсумкове оцінювання
• Максимальна кількість балів які можуть бути отримані студентом: 35 балів.
• Результати навчання які будуть оцінюватись: PH1.1, PH1.2.
• Форма проведення і види завдань: письмова робота.
• Види завдань: письмові завдання з обмеженням на час виконання.
Студент не допускається до іспиту, якщо під час семестру набрав менше ніж 25 балів.
Мова викладання
Українська
Викладачі
Ця дисципліна викладаеться наступними викладачами
Олексій
Ілліч
Ченцов
Інтелектуальних програмних систем
Факультет комп'ютерних наук та кібернетики
Факультет комп'ютерних наук та кібернетики
Олег
Олексійович
Супрун
Інтелектуальних програмних систем
Факультет комп'ютерних наук та кібернетики
Факультет комп'ютерних наук та кібернетики
Кафедри
Наступні кафедри задіяні у викладанні наведеної дисципліни
Інтелектуальних програмних систем
Факультет комп'ютерних наук та кібернетики
Інтелектуальних програмних систем
Факультет комп'ютерних наук та кібернетики