- •Парадигми програмування
- •8.080401: Інформаційні управляючі системи та технології
- •Тема 1. Парадигма імперативного програмування Лекція 1. Огляд парадигм програмування
- •1.1 Базові поняття і визначення
- •1.2 Класифікація парадигм програмування
- •Парадигми
- •Объектно-ориентированные возможности
- •Функциональные возможности
- •1.3 Огляд парадигми імперативного програмування
- •1.4 Програмування, кероване подіями
- •1.5 Узгоджене програмування і паралельні обчислення
- •1.6. Підтримка різних парадигм програмування в ms.Net
- •Тема 2. Парадигма об’єктно-орієнтованого програмування Лекція 2. Об'єктно-орієнтоване програмування та його реалізація в c# на платформі ms.Net
- •2.1 Основні принципи об’єктно-орієнтованого програмування
- •2.2 Чисто об'єктно-орієнтовані і гібридні мови програмування
- •2.3. Реалізація принципів ооп в мові c#
- •Тема 3. Програмування за прототипом і сценарне програмування Лекція 3. Програмування за прототипом і сценарне програмування
- •3.1 Програмування за прототипом
- •3.2 Сценарне програмування
- •Тема 4. Парадигма компонентного програмування Лекція 4. Компонентне програмування як розвиток об’єктного
- •4.1 Основні ідеї компонентної розробки
- •4.2 Компонентна об'єктна модель com (Component Object Model).
- •4.3. Технологія ActiveX – основні можливості
- •Лекція 5. Компонентне програмування в .Net
- •5.1 Основні концепції платформи ms.Net
- •5.1.1 Структура fcl
- •5.1.2 Загально мовне середовище виконання – clr – динамічна складова ms.Net Framework
- •5.1.3. Система типів даних в Microsoft .Net
- •Управління типами в cts
- •5.2. Розробка компонентів на платформі .Net
- •5.3. Поняття збірки і маніфесту в .Net
- •1. Створення dll-бібліотеки
- •2. Створення консольного проекту для тестування функції з бібліотеки.
- •3. Підключення проекту бібліотеки до консольного проекту.
- •4. Встановлення стартового проекту.
- •5. Створення Windows-проекту в тому самому рішенні.
- •6. Робимо проект стартовим і запускаємо на виконання. Результат:
- •7. Документування коду
- •Лекція 6. Візуальне програмування
- •6.1. Парадигма візуального програмування
- •1. Підключення до сервера бд
- •2. Створення власної бд і таблиць
- •3. Заповнення таблиці тестовими даними
- •4. Створення Windows-застосунку (форми)
- •5. Зв'язування елементів форми з джерелом даних
- •7. Створення запитів до даних і їх відображення на формі у вигляді таблиці (Grid)
- •Тема 5. Парадигма декларативного програмування Лекція 7. Основи парадигми декларативного програмування
- •7.1 Основи парадигми декларативного програмування
- •7.2 Основи функціонального програмування
- •Основи Лісп
- •7.3 Основи логічного програмування
- •7.4 Основи Пролог
- •Лекція 8. Основи xml
- •8.1. Визначення і структура xml-документа
- •8.2. Створення xml-документа
- •8.2.1. Структура xml-документа
- •8.3. Способи відображення xml-документа
- •8.4. Правила створення коректного xml-документа
- •8.4.1. Визначення коректного документа
- •8.4.2. Складові частини коректно сформованого хмl-документа
- •8.4.3. Додавання елементів в документ
- •8.4.4. Типи вмісту елементу
- •Лекція 9. Робота з xml в .Net
- •9.1. Класи для роботи з xml .Net
- •9.2. Читання і запис потоків даних Xml
- •9.2.1. Використання класу XmlReader
- •9.2.2. Методи читання даних
- •9.2.3. Контроль типів даних при читанні Xml-документа
- •9.3. Створення xml-документа в Visual Studio
- •Лекція 10. Створення xml-документів в .Net
- •10.1. Використання класу XmlWriter - запис потоків даних Xml
- •10.2. Використання dom в .Net
- •10.2.1. Читання xml-документа за допомогою XmlNodeList
- •10.2.2. Вставка елементів (вузлів) в xml- документ
- •10.3. Обробка атрибутів
- •10.3.1. Витягання атрибутів за допомогою XmlReader
- •10.3.2. Вставка атрибутів в документ за допомогою XmlWriter
- •Лекція 11. Елементи функціонального програмування в c#
- •11.1. Елементи функціонального програмування в c#
- •11.2. Делегати
- •11.3. Лямбда-вирази і лямбда-функції
- •Приклади
- •Лекція 12. Мова linq
- •2. Linq: узагальнення і інтерфейси
- •3. Основні операції запиту
- •4. Перетворення даних з linq
- •12.1. Основи мови linq
- •1.1 Джерело даних
- •1.2. Запит
- •1.3. Виконання запиту
- •12.2. Linq: узагальнення і інтерфейси
- •12.2.1. Змінні iEnumerable в запитах linq
- •12.3. Основні операції запиту
- •12.3.1. Визначення джерела даних
- •12.3.2. Фільтрація
- •12.3.3. Впорядкування
- •12.3.4. Угрупування
- •12.3.5. З'єднання
- •12.3.6. Вибір (Проектування)
- •12.4. Перетворення даних з linq
- •12.4.1. З'єднання декількох вхідних послідовностей в одну вихідну
- •12.4.2. Вибір підмножини кожного вихідного елементу
- •12.4.3. Перетворення об'єктів, що знаходяться в пам'яті, в xml
- •12.4.4. Виконання операцій над вихідними елементами
- •12.5. Зв'язки типів в операціях запиту
- •12.5.1. Запити, що не виконують перетворення вихідних даних
- •12.5.2. Запити, що виконують перетворення вихідних даних
- •12.5. 3. Дозвіл компілятору визначати відомості про типа
- •12.6. Синтаксис запиту або синтаксис методу
- •12.6.1. Методи розширення стандартних операторів запитів
- •12.6.2. Лямбда-вирази
- •Тема 7. Парадигма агентно-орієнтованого програмування Лекція 13. Агентно-орієнтоване програмування
- •13.1 Основні поняття агентно-орієнтованої парадигми програмування
- •1. За архітектурою побудови агентів і їх властивостями:
- •За функціональним призначенням:
- •3. За здатністю до мобільності:
- •3Адачні агенти
- •13.2 Мультиагентні інформаційні системи
- •1. Формальна мова опису системи моделей (ментальної, соціальної):
- •2. Інструменти перетворення звичайних програм у відповідні агентні програми.
- •13.3. Приклади практичного застосування агентної парадигми
- •3Асоби пошуку в Інтернет
- •Тема 8. Парадигма теоретичного програмування Лекція 14. Основні парадигми теоретичного програмування
- •Основна література
- •Додаткова література
7.4 Основи Пролог
Пролог - практично єдина широко використовувана мова логічного програмування. Програма на мові Пролог в загальному вигляді представляється як відношення між введенням і результатом.
program(input, output)
Розглянемо простий приклад.
Введемо відношення батько між об'єктами Іван і Петро. На Пролозі це буде виглядати так:
батько (іван, петро) – це факт, який визначає, що Іван є батьком Петра. Батько – ім'я відношення, Іван і Петро - його аргументи.
Відношення, про яке відомо, що воно є істина, називається фактом.
Сукупність фактів в Пролозі називають базою даних (або базою фактів).
Синтаксис Прологу
Розглянемо основні елементи Пролог. Отже, Пролог-програма складається з програмних конструкцій (clause) трьох типів:
Факти, правила, питання
Всі конструкцій складаються з термів, основного елемента мови Пролог. Терми будуються з констант, змінних, атомів, чисел, і структур (функторів) з використанням круглих дужок.
Константи - це поіменовані конкретні об'єкти або відношення.
Змінна — це ланцюжок (слово), складений з літер, цифр і символу підкреслення, що починається з великої літери або символу підкреслення. Змінні служать для позначення об'єктів, значення яких змінюються в ході виконання програми
Атом — це ланцюжок, складений з літер, цифр і символу підкреслення, що починається з маленької літери або з великої літери, але тоді в одинарних лапках.
Числа записуються традиційним чином.
Цілі ( діапазон -32768- 32767)
Раціональні ( діапазон 1Е-307 - 1Е+308)
Структура - це єдиний об'єкт, що складається з сукупності інших об'єктів, які називаються компонентами. Компоненти у свою чергу можуть бути також структурами. Структура в Пролозі називається функтор.
Наприклад, дата:
data(dd,mm,yyyy)
Ідеї мови Пролог простежуються в сучасних мовах представлення знань в Інтернет: OWL, RDF, які лежать в основі розвитку Семантичного Веб
Питання:
1. Яка основна відміна між імперативною та декларативною парадигмами?
2. Які мови програмування традиційно відносять до декларативної парадигми?
3. Яка математична теорія лежить в основі функціонального програмування?
4. Яка математична теорія лежить в основі логічного програмування?
5. Яка мова програмування традиційно є мовою функціонального програмування?
6. Яка мова програмування традиційно є мовою логічного програмування?
7. Назвіть дві основні характеристики функціонального програмування?
8. Для якого класу задач призначене функціонального програмування?
9. Для якого класу задач призначене логічне програмування?
10. Що собою представляє програма у логічному програмуванні?
11. До якої парадигми відноситься мова Prolog?
12. До якої парадигми відносяться мови Lisp, Common Lisp?
13. У чому полягає виконання програми у логічному програмуванні?
Лекція 8. Основи xml
План
1. Визначення і структура XML-документа
2. Створення XML-документа
3. Способи відображення XML-документа.
4. Правила створення коректного XML-документа
8.1. Визначення і структура xml-документа
Будь-який документ можна представити у вигляді деякого набору символів, розділених на дві групи: перша група визначає вміст документа, друга – спеціальні набори символів (теги), призначені для специфічного виділення або позначки деяких частин першої групи. У XML-документах перша група носить назву "текст" або "контент", а друга називається розміткою. У мові HTML, наприклад, до розмітки відносяться всі теги, без виключення.
Розмітка XML-документа є дещо складніше поняття, ніж в мові HTML. Це пов'язано з трьома наступними обставинами:
1. XML-документ може містити інструкції обробки самого себе. Це означає, що обробник XML-документа (процесор) є посередником між цим документом і деяким застосуванням. Такими застосуваннями можуть бути бази даних, сервер каталога, мова програмування, що працює на стороні сервера, і тому подібне.
2. Синтаксис мови XML визначений жорстко і не допускає багатозначного тлумачення своїх правил. Причому будь-яке відхилення від цих правил спричиняє за собою відмову процесора обробляти весь документ. Тому в мові XML кількість обмежень на синтаксис документа, про які необхідно пам'ятати розробнику, значно більше, чим в мові HTML.
3. На відміну від мови HTML, розробник XML-документів сам визначає назви тегов і, можливо, правила їх інтерпретації. Якщо такі правила присутні, то вони відокремлені від безпосередньо XML-коду і утворюють так званий сценарій XSLT (XSL Transformation). Іншими словами, якщо XML-файл служить не лише для зберігання яких-небудь даних, але і для їх представлення, (наприклад, в браузері), то способи представлення цих даних винесені в окремий XSL-файл (XSL – розширювана мова стилів).
Структура інформації, що міститься в XML-файлі, є ієрархічною моделлю даних (як і HTML-документа), тобто, вся символьна інформація: розмітка або контент є сукупністю вузлів деякого дерева. По правилах XML в коректному документі має бути присутнім єдиний кореневий елемент. Всі останні елементи є його безпосередніми нащадками або нащадками інших його нащадків. Процес обробки такого документа починається з першого або кореневого елементу, потім обробляються вузли дерева другого рівня, потім — третього і так далі. Переважна більшість помилок виникають в результаті того, що набори символів розмічені не однозначно, тобто процесор не може визначити, до якого саме вузла слід віднести даний набір.
