Розробка мовних процесорів
Освітня програма: Прикладна Математика
Структурний підрозділ: Факультет комп'ютерних наук та кібернетики
Назва дисципліни
Розробка мовних процесорів
Код дисципліни
ДВС.3.04.02
Тип модуля
Вибіркова дисципліна для ОП
Цикл вищої освіти
Перший
Рік навчання
2022/2023
Семестр / Триместр
6 Семестр
Кількість кредитів ЕСТS
3
Результати навчання
РН13. Використовувати в практичній роботі спеціалізовані програмні продукти та програмні системи комп’ютерної математики.
РН11. Вміти застосовувати сучасні технології програмування та розроблення програмного забезпечення, програмної реалізації чисельних і символьних алгоритмів
Форма навчання
Попередні умови та додаткові вимоги
1. Знати: загальні принципи проектування алгоритмів обробки нечислової інформації;
мови програмування С та C++ на базовому рівні; технології та методи проектування та програмування.
2. Вміти: розробляти специфікації з урахуванням встановлених вимог; демонструвати процеси та результати професійної діяльності.
3. Володіти елементарними навичками: програмування мовою С та C++ з використанням інструментальних середовищ розробки програмного забезпечення.
Зміст навчальної дисципліни
Змістовий модуль 1. Оглядові лекції з мови програмування Java
Приклад простої Java-програми. Поняття пакету в мові Java. Роль JVM при виконанні програми. Поняття об'єкта в мові програмування Java. Відкрита та закрита компоненти об'єкта.
Поняття класу як приватного типу . Синтаксис визначення типу. Конструктори. Роль GC – при управлінні динамічною пам’яттю. Метод finalize(). Методи класу. Сигнатура методу. Перевантаження методів.
Узагальнені масиви. Поняття рефлексії. Роль JVM при реалізації рефлексії. Методи рефлексії. Виключення та їх обробка. Ієрархія виключень.
Інтерфейси в мові Java. Колекції. Каркас інтерфейсів у системі колекцій.
Змістовний модуль 2. Розробка мовних процесорів мов програмування (лексичний аспект).
Поняття мовного процесора. Типи мовних процесорів. Основні фази мовного процесора. Структура мовного процесора типу транслятор та типу інтерпретатор. Основні блоки мовного процесора.
Лексичний аналіз. Функції лексичного аналізатора. Скінчені автомати. Способи завдання скінчених автоматів. Мінімальні скінчені автомати.
Регулярні множини та регулярні вирази. Основні тотожності над регулярними виразами. ПОЛІЗ регулярного виразу.
Праволiнiйнi граматики та скінчені автомати. Побудова скінченого автомата на основі праволiнiйної граматики.
Методика побудови лексичних аналізаторів на основі скінчених автоматів.
Змістовний модуль 3. Розробка мовних процесорів мов програмування (синтаксичний аспект).
Порождуючi граматики. Класифiкацiя граматик по Хомському. Породжуючi граматики та еквiвалентнi їм класи автоматів. Аналіз ланцюжка W в граматиці G.
Магазинні автомати.
Означення LR(k)-граматики. Приклади.
Перевірка LR(1)-умови для довільної КС-граматики.
Рекомендована та необхідна література
1. Волохов В.М. Презентаційні матеріали до лекцій. 2018, 13 лекцій у pdf-форматі.
2. В.В. Волохов, Б.І. Бойко, В.Ф. Кузенко, С.С. Шкільняк. Методичні рекомендації до
лабораторного практикуму побудови мовних процесорів з курсу „Системне
програмування” – К. Київський національний університет імені Тараса Шевченка, 2001. –
52 с.
3. Java 2. http://www.oracle.com/technetwork/java/javase/documentation/index.html.
4. Richard Antony. System Programming. 1st Edition. Morgan Kaufman. ISBN
9780128007297, 2015. – 548 p.
5. Cooper, Keith D., and Torczon. Engineering a Compiler, Morgan Kaufmann, 2004, ISBN 1-
55860-699-8.
6. Alfred Aho, Monica Lam, Ravi Sethi. Compilers: Principles, Techniques, and Tools 2nd
Edition. ISBN-13: 978-0321486813, 1040 p. https://www.amazon.com/Compilers-Principles-
Techniques-Tools-2nd/dp/0321486811.
7. Ахо А. Ульман Дж. Теория синтаксического анализа, перевода и компиляции. Т1. М.
Мир. 1978.
Заплановані освітні заходи та методи викладання
Лекції, лабораторні заняття, консультації, самостійна робота
Методи та критерії оцінювання
1. Контрольна робота (тест): РН 1.1 - 8 балів/ 5 балів
2. Лабораторна робота (1проект): РН1.2 - 8 балів/5 балів
1. Контрольна робота (тест): РН 1.3 - 8 балів/ 5 балів
3. Лабораторна робота (1 проект): РН 2.1 - 8 балів/5 балів.
4. Лабораторна робота (1 проект): РН 2.2 - 8 балів/5 балів.
5. Лабораторна робота (1проект): РН 2.3, РН4.1 -20 балів/ 11 балів
- підсумкове оцінювання (у формі іспиту) вказується:
- максимальна кількість балів які можуть бути отримані студентом: 40 балів;
- результати навчання які будуть оцінюватись: PH1.1, PH1.2, РН 1.3, РН 2.1
- форма проведення і види завдань: письмова
Види завдань: 3 теоретичних та 2 практичних завдання
Мова викладання
Українська
Викладачі
Ця дисципліна викладаеться наступними викладачами
Кафедри
Наступні кафедри задіяні у викладанні наведеної дисципліни