Системне програмування

Освітня програма: Прикладна Математика

Структурний підрозділ: Факультет комп'ютерних наук та кібернетики

Назва дисципліни
Системне програмування
Код дисципліни
ДВС.3.04.01
Тип модуля
Вибіркова дисципліна для ОП
Цикл вищої освіти
Перший
Рік навчання
2022/2023
Семестр / Триместр
6 Семестр
Кількість кредитів ЕСТS
3
Результати навчання
РН11. Вміти застосовувати сучасні технології програмування та розроблення програмного забезпечення, програмної реалізації чисельних і символьних алгоритмів. РН13. Використовувати в практичній роботі спеціалізовані програмні продукти та програмні системи комп’ютерної математики.
Форма навчання
Попередні умови та додаткові вимоги
1. Знати: загальні принципи проектування алгоритмів обробки нечислової інформації; мови програмування Java, С та C++ на базовому рівні; технології та методи проектування та програмування. 2. Вміти: розробляти специфікації з урахуванням встановлених вимог; демонструвати процеси та результати професійної діяльності. 3. Володіти елементарними навичками: програмування м овою J ava, С т а C ++ з використанням інструментальних середовищ розробки програмного забезпечення.
Зміст навчальної дисципліни
Частина 1. Об’єктно-орієнтоване програмування. Оглядові лекції з мови програмування Java Поняття об'єкта в мові програмування Java. Структура об’єкта. Відкрита та закрита компоненти об'єкта. Методи - члени об'єкта. Опис та означення функцій - членів об'єкта. Визначення та опис методів класу. Поняття класу як приватного типу . Об’єкт типу. Синтаксис визначення типу та об’єкта типу. Конструктори. Метод finalize(). Методи класу. Сигнатура методу. Перевантаження методів. Узагальнені масиви. Об’єктні оболонки. Поняття рефлексії. Роль JVM при реалізації рефлексії. Методи рефлексії. Виключення та їх обробка. Ієрархія виключень. Колекції. Інтерфейси колекцій та відповідна ієрархія класів. Частина 2. Розробка мовних процесорів мов програмування (лексичний аспект). Поняття мовного процесора. Типи мовних процесорів. Основні фази мовного процесора. Структура мовного процесора типу транслятор та типу інтерпретатор. Лексичний аналіз. Функції лексичного аналізатора. Вхідні та вихідні структури даних лексичного аналізатора. Скінчені автомати. Способи завдання скінчених автоматів. Недетермiнованi та детерміновані скінчені автомати. Регулярні множини та регулярні вирази. Основні тотожності над регулярними виразами. Регулярні множини та скінчені автомати. Алгоритм перетворення регулярного виразу у ПОЛІЗ. Праволiнiйнi граматики та скінчені автомати. Побудова скінченого автомата на основі праволiнiйної граматики. Система лінійних рівнянь в алгебрі регулярних виразів. Програмування скінчених автоматів. Прямий та непрямий лексичний аналіз в мовних процесорах. Побудова лексичних аналізаторів на основі скінчених автоматів. Частина 3. Розробка мовних процесорів мов програмування (синтаксичний аспект). ..
Рекомендована та необхідна література
1. В.В. Волохов, Б.І. Бойко, В.Ф. Кузенко, С.С. Шкільняк. Методичні рекомендації до лабораторного практикуму побудови мовних процесорів з курсу „Системне програмування” – К. Київський національний університет імені Тараса Шевченка, 2001. – 52 с. 2. Java 2. http://www.oracle.com/technetwork/java/javase/documentation/index.html. 3. Richard Antony. System Programming. 1st Edition. Morgan Kaufman. ISBN 9780128007297, 2015. – 548 p. 4. Cooper, Keith D., and Torczon. Engineering a Compiler, Morgan Kaufmann, 2004, ISBN 1- 55860-699-8. 5. 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. 6. Волохов В.М. Презентаційні матеріали до лекцій. 2018, 12 лекцій у pdf-форматі. 7. Ахо А. Ульман Дж. Теория синтаксического анализа, перевода и компиляции. Т1. М. Мир. 1978. ..
Заплановані освітні заходи та методи викладання
Лекції, лабораторні заняття, консультації, самостійна робота
Методи та критерії оцінювання
1. Контрольна робота (тест): РН 1.1 - 9 балів/ 5 балів 2. Лабораторна робота (1 проєкт): РН1.2 - 9 балів/ 5 балів 3. Лабораторна робота (1 проєкт): РН 1.3 - 9 балів/ 5 балів 4. Лабораторна робота (1 проєкт): РН 2.1 - 9 балів/ 5 балів 5. Лабораторна робота (1 проєкт): РН 2.2 - 9 балів/ 5 балів 6. Лабораторна робота (1 проєкт): РН 2.3, РН 4.1 - 15 балів/ 11 балів - підсумкове оцінювання (у формі іспиту) вказується: - максимальна кількість балів які можуть бути отримані студентом: 40 балів; - результати навчання які будуть оцінюватись: PH1.1, PH1.2, РН 1.3, РН 2.1 - форма проведення і види завдань: письмова Види завдань: 3 теоретичних та 2 практичних завдання
Мова викладання
Українська

Викладачі

Ця дисципліна викладаеться наступними викладачами

Кафедри

Наступні кафедри задіяні у викладанні наведеної дисципліни