ТЕОРІЯ МОВ ПРОГРАМУВАННЯ
Лекції 2021(весна)
Лекція 1. Введення в теорію мов програмування pdf
Пройти тест №1. Історія ТММ
Для проходження текстів спочатку треба зареєструватися на сайті під реальним іменем.
Після проходження тесту скріншот результату надішліть на пошту викладача.
Домашне завдання 1. Письмово дайте відповідь на наступні питання і відішліть їх на пошту викладача. 1. Які три способи мислення щодо програмування часто називають парадигмами програмування? 2. Назвіть принаймні одну мову для кожного з трьох методів програмування, описаних у попередньому питанні. 3. Назвіть одну людину, яка мала багато спільного з розробкою імперативної моделі програмування. Назвіть іншого, хто сприяв функціональній моделі. Нарешті, назвіть людину, яка відповідала за розробку логічної моделі програмування. 4. Які основні характеристики кожної з імперативних, функціональних та логічних моделей? 5. Хто визнаний засновниками кожної з мов, які охоплює цей текст: Java, C ++, Python, Standard ML та Prolog? 6. Назвіть мову, відмінну від Python, C ++ або Java, яка є обов’язково об’єктно-орієнтованою за своєю суттю. 7. Назвіть мову, крім Standard ML, тобто функціональну мову програмування. 8. Які ще існують мови логічного програмування, крім Prolog? Можливо, вам доведеться проявити творчість щодо цього. 9. Чому складання програми віддається перевазі перед інтерпретацією програми? 10. Чому інтерпретація програми є кращою перед складанням програми? 11. Які переваги мають мови віртуальних машин перед мовами, що інтерпретуються? 12. Що таке програма байт-коду? Назвіть дві мови, які використовують байт-код у своїй реалізації. 13. Чому типи важливі в мові програмування? 14. Що означає для мови програмування динамічно набирати текст? 15. Що означає статичну типізацію мови програмування? |
Лекція 2. Синтаксичний аналіз pdf
Лабораторна робота №1.
1. Побудувати виведення інфіксного виразу 4 + (a − b) ∗ x на основі граматики зі слайду 22 лекції 2. 2. Скласти програму визначення граматики на основі БНФ - GRAM-BNF - з занесенням до спеціалізованого файла з розширенням .grm. 3. Скласти програму виводу інфіксних виразів - DERIV на основі граматики з файлу з розширенням .grm. 4. Перевірити роботоздатність програм на прикладі з завдання 1. 5. Виконані завдання надіслати на пошту викладачу. |
Лекція 3. Лексичний аналіз, парсінг pdf
Лабораторна №2. pdf
Термін здачі лабораторної - 10 березня 2021.
Лекція 4. Мова асемблера JCoCo pdf
Лекція 5. Мова асемблера JCoCo (продовження)pdf
Додаток до лекцій А. Інструкції мови асемблера JCoCo pdf
Відеофайл лекції mp4 (доступний до 03.06.2021)
Лекція 6. Мова асемблера JCoCo (завершення) pdf
Лекція 7. Імплементація мови ООП в JCoCo (початок) pdf
Лекція 8. Імплементація мови ООП в JCoCo (продовження) pdf
Додаток А. pdf
Лекція 9. Імплементація мови ООП в JCoCo (завершення) pdf
Лекція 10. Імплементація функціональних мов (початок) pdf
Лекція 11. Імплементація функціональних мов (завершення) pdf
Лекція 12, 13. Компіляція Standard ML pdf1 pdf2
Лекція 14. Standard ML (завершення) pdf
Лекція 15. Імплементація мов логічного програмування (початок) pdf
Лекція 16. Імплементація мов логічного програмування (завершення)
Лабораторна №3. pdf
Термін здачі лабораторної - 31 березня 2021.
Лабораторна №4. pdf
Лабораторна №5. pdf
Лабораторна №6. pdf
Пройти тест №2.
Заочна форма навчання
Лекції
Лекція 1. pdf
Лекція 2. pdf
Лекція 3. Programming language for computable functions PCF pdf
Лекція 4. Programming language for computable functions PCF (continue) pdf
Лекції для самостійного вивчення
Лекція 5. Абстрактна машина для PCF. Конструювання інтерпретаторів та компіляторів на PCF
Лекція 6. Типізація на PCF
Лекція 7. Алгоритми виведення мономорфних і поліморфних типів
Лекція 8. Семантика PCF з посиланнями
Лекція 9. Записи та об'єкти в PCF
Завдання для розрахунково-практичної роботи з дисципліни
Література
2. Anatomy of Programming Languages (William R. Cook)
3. Practical Foundations for Programming Languages (Robert Harper)
4. Programming and Programming Languages (Shriram Krishnamurthi)