- Кількість кредитів 4
- Тип Обов'язковий
- Семестри 7, 8
- Рівень вищої освіти Бакалавр
- Підсумковий контроль Екзамен
Дисципліна «Спеціалізовані мови програмування» спрямована на формування у студентів системного розуміння спеціалізованих мов (DSL), їх призначення, класифікації та місця у сучасних програмних і комп’ютерних системах. Розглядаються мови розмітки й опису інтерфейсів, запитів і роботи з даними, конфігурації та серіалізації, сценарної автоматизації, побудови й інфраструктури, наукових обчислень, логічного та функціонального програмування, комп’ютерної графіки, паралельних обчислень і опису апаратури. Окрема увага приділяється принципам проєктування власної DSL, визначенню синтаксису й семантики та базовим підходам до її реалізації.
Модуль 1. Основи DSL, мови розмітки, інтерфейсів і даних
Тема 1. Вступ до спеціалізованих мов програмування
Тема 2. Класифікація спеціалізованих мов
Тема 3. Мови розмітки: HTML, XML, Markdown
Тема 4. CSS, QML, XAML: мови опису стилів та інтерфейсів
Тема 5. SQL: спеціалізована мова роботи з реляційними даними
Тема 6. Розширені можливості SQL
Тема 7. JSON, YAML, TOML та Protocol Buffers
Модуль 2. Автоматизація, збірка, інфраструктура та обчислення
Тема 8. Регулярні виразиthon-скрипти
Тема 9. Bash, PowerShell та Python-скрипти
Тема 10. Makefile, CMake, Gradle та Maven
Тема 11. Dockerfile, Docker Compose, Terraform та Ansible
Тема 12. R, MATLAB, NumPy та Pandas
Тема 13. Prolog: логічне програмування як спеціалізований підхід
Модуль 3. Декларативні, графічні й апаратні мови та проєктування DSL
Тема 14. Lisp-подібні DSL та Wolfram Language
Тема 15. GLSL, HLSL та CUDA
Тема 16. Verilog та VHDL
Тема 17. Проєктування власної спеціалізованої мови
Модуль 4. Вступ. Принцип побудови простого додатку, класифікація типів, базові конструкції та масиви
Тема 1. Вступ. Що таке Java? Виконання Java-програми. Поняття JVM.
Тема 2. Що таке JDK? Що таке JRE? Як встановити JDK? Інтегровані середовища розробки.
Тема 3. Перший додаток на Java. Опис синтаксичних особливостей мови Java. Коментарі. Константи.Символи. Рядки. Імена.
Тема 4. Цілі типи.Операції над цілими типами. Операції порівняння. Дійсні типи.Операції присвоєння. Умовна операція. Пріоритет операцій.
Тема 5. Оператори. Оператори присвоєння. Умовний оператор. Оператор continue та мітки.Оператори циклу. Оператор continue та мітки. Оператор break. Оператор варіанта.
Тема 6. Масиви.Оголошення.Визначення.Ініціалізація. Створення безіменних масивів. Багатовимірні масиви. Оголошення. Визначення. Ініціалізація.
Модуль 5. Парадигми та принципи реалізації ООП, специфікатори доступу, структура класів ядра, виключні ситуації, потоки та аплети
Тема 7. ООП в Java. Парадигми програмування. Принципи ООП: Абстракція, Ієрархія. Інкапсуляція . Модульність. Опис класу та підкласу. Передача аргуменітв в метод. Перевантаження методів.
Перевизначення методів. Реалізація поліморфізму. Абстрактні методи і класи. Остаточні методи і класи.
Тема 8. Пакети. Пакет та підпакет. Права доступу до членів класу. Розміщення пакетів у файловій системі . Імпорт класів та пакетів. Java-файли. Інтерфейси. Варіанти наслідування. Перерахування. Аннотації.
Тема 9. Клас Object. Конструктори класу. Операція new. Статичні члени класу static. Метод main(). Методи зі змінною кількістю аргументів. Області видимості змінних. Вкладені класи.
Тема 10. Обробка виключних ситуацій. Блоки перехоплення виключних ситуацій. Частина заголовка метода throws. Оператор throw. Ієрархія класів виключень. Порядок обробки виключень.
Тема 11. Підпроцеси. Клас Thread та його конструкторы. Синхронізація підпроцесів. Узгодження роботи декількох процесів. Пріоритети процесів. Процеси-демони. Групи підпроцесів.
Тема 12. Аплети . Особливості написання та роботи з html. Передача параметрів в аплет. Параметри тегу . Відомості про оточення аплета. Зображення та звук в аплетах. Відслідковування процесу завантаження. Класс MediaTracker. Захист від аплета. Аплети бібліотеки.
Модуль 3. Робота з рядками за допомогою спеціалізованих класів. Ієрархія класів-колекцій. Знайомство з класом вектор
Тема 13. Робота із рядками. Клас String. Створення рядків. Зчеплення рядків. Маніпуляції зі рядками. Розбиття на підрядки. Порівняння рядків. Знаходження символу та підрядка. Заміна символу та підрядка. Метод trim(). Перетворення інших типів даних у рядок.
Тема 14. Клас StringBuilder. Конструкторы. Додавання та вставка підрядока. Видалення підрядока та символу. Заміна підряду. Перевертання рядка. Синтаксичний розбір рядку. Клас StringTokenizer.
Тема 15. Класи-колекції структура ієрархії . Клас Vector , Створення вектора. Додавання елементу у вектор. Заміна елементу. Визначення розміру вектора. Звернення та перевірка наявності е-ту. Індекс е-ту. Видалення е-ту.