"Мова програмування - це миша.
Мова програмування з компілятором - це слон."
Програміська мудрість.
Навчальний курс для бакалаврів спеціальності "Інженерія програмного забезпечення".
Лекції
Лекції 1-2. Введення в теорію компіляторів мов програмування. Історія розвитку. pdf
Лекція 3. Форми запису граматики мови програмування. pdf1, pdf2, pdf3
Noam Chomsky Three Models for the Description of Language. IRE Transactions on Information Theory. September, 1956.
Сайт з роботами Наома Хомського (Чомського)
Лекція 4. Формальні системи та парадигми програмування. pdf
Література до 4 лекції:
1. Peter Van Roy. The principal programming paradigms (2008). pdf
2. R. W. Floyd. The Paradigms of Programming Communications of the ACM, 22(8):455—460, 1979. Русский перевод см. в кн.: Лекции лауреатов премии Тьюринга за первые двадцать лет (1966—1985), М.: МИР, 1993.
3. Барендрегт, Хенк. Ламбда-исчисление. Его синтаксис и семантика. — М.: Мир, 1985. — 606 с.
4. The Imperative and Functional Programming Paradigm pdf
Лекція 5. Сканер (лексичний аналізатор). pdf
Лекція 6. Приклад опису мови програмування (1) pdf
Лекція 7.1-7.4. Приклад опису мови програмування (2) pdf
Синтаксичний аналізатор. Парсінг. pdf
Види синтаксичного розбору. pdf pdf2 pdf3
Діаграми синтаксичного розбору на прикладі мови програмування pdf
Лекція 8. САМОВИЗНАЧЕННЯ СЕМАНТИКИ МОВ ПРОГРАМУВАННЯ слайди
Лекція 9.1. ФОРМАЛІЗАЦІЯ СЕМАНТИКИ МОВ ПРОГРАМУВАННЯ. Типи опису семантики мови програмування. pdf
Лекція 10. Аксіоматичний метод опису семантики. pdf
Лекція 11. Опис семантики за допомогою математичної індукції. pdf
Лекція 12. Універсальна мова програмування. Машини М.Мінського. pdf
Лекція 13.
Лабораторні роботи
Рекомендована література
- Ахо А., Ульман Дж. Теория синтаксического анализа, перевода и компиляции. В 2-х томах. Том 1. М.: Мир, 1978. –616с.
- Ахо А., Моника С. Лам М., Рави Сети Р., Ульман Дж. Компиляторы. Принципы, технологии и инструментарий. – Вильямс, 2003. – 768 с.
- Грис Д. Конструирование компиляторов для цифровых вычислительных машин /Пер.с англ. –М.: Мир, 1975.
- Донован Дж. Системное программирование /Пер.с англ. –М.: Мир, 1975. –540с.
- Хантер Р. Проектирование и конструирование компиляторов. –М.: Финансы и статистика, 1984.
Захист курсового проекту буде відбувати у три етапи:
1. Надіслати ПЗ та записку на електронну пошту викладача.
2. Після узгодження (отримання позитивної відповіді від викладача) роздрукувати записку за вимогами ДСТУ.
3. З роздрукованою запискою захистити проект.
Дата захисту - 8 червня о 14:00.
Крайній термін захисту 21 червня.
При незахисті курсового проекту студент відраховується. Другої спроби захисту не надається.
СТРУКТУРА КУРСОВОГО ПРОЕКТУ “ТЕОРІЯ КОМПІЛЯТОРІВ”
Записка повинна включати наступні розділи:
1. Постановка задачі
2. Теоретичні основи обраних парадигм програмування. Побудова гібридної теорії.
3. Опис обраної проблемно-орієнтованої мови програмування в БНФ (на основі мінімум двох парадигм).
4. Реалізація лексичного та синтаксичного аналізаторів на основі опису БНФ.
5. Опис семантики мови програмування (в одній з наступних форм):
а) аксіоматичний опис
б) алгебраїчний опис
в) опис action semantics
6. Програмна реалізація компілятора обраної мови програмування
Додаток 1. Вхідні тексти програмної реалізації компілятора
Додаток 2. Скріншоти прикладів роботи компілятора