- •Парадигми програмування
- •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. Основні парадигми теоретичного програмування
- •Основна література
- •Додаткова література
Тема 8. Парадигма теоретичного програмування Лекція 14. Основні парадигми теоретичного програмування
Одночасно з парадигмами прикладного програмування продовжують розвиватися і парадигми теоретичного програмування, в основі яких лежать фундаментальні дослідження, що базуються на математичних теоріях. Авторами української теоретичної школи програмування, створеної В.М. Глушковим, запропоновані нові парадигми: алгебраїчного, інсерційного, композиційного, експлікативного програмування і теоретичні підходи в рішенні ключових проблем теорії програмування.
Парадигма алгебраїчного програмування ґрунтується на теорії переписування термів. В цій парадигмі терми – це дані, а системи переписуючих правил, які виражаються за допомогою системи рівнянь, - алгоритми обчислень. Елементарний крок обчислення включає порівняння із зразком, перевірку умов і підстановку.
Порядок вибору переписуючих правил і підтермів даного терма для порівняння з лівими частинами рівнянь визначається стратегією переписування. Ця стратегія визначає результат обчислень – терм – з точністю до еквівалентності початковому терму. Власне стратегія переписування може бути описана в парадигмі більш низького рівня, наприклад, процедурній або функціональній, що приводить до необхідності інтеграції парадигм. В даний час ідея інтеграції парадигм (процедурної, функціональної, алгебраїчної і логічної) реалізована в системі алгебраїчного програмування (APS), в якій використовуються спеціалізовані структури даних - графові терми – для подання даних і знань про предметні області. Теоретична школа алгебраїчного програмування розвивається в ІК НАНУ (Капітонова Ю.В., Летічевський О.А.), Соломоновому університеті (Цейтлин Г.Е).
Інсерційне програмування узагальнює погляд на програму, як на алгебраїчне перетворення множини станів інформаційного середовища, але замість пасивного середовища (пам'яті) розглядається активне інформаційне середовище, що має поведінку. Перетворення поведінки цього середовища відбувається в результаті дії на її об'єкти взаємодіючих агентів. В основі інсерційного програмування – модель поведінки агентів в середовищах, що базується на поняттях транзиційної системи (основного стандарту в теорії взаємодіючих процесів) і відношення еквівалентності агентів відносно оточення (стан агента ототожнюється з його поведінкою). На відміну від агентного програмування, що концентрує увагу, більшою мірою, на проблемах інтелектуалізації агентів, інсерційне програмування охоплює аспекти поведінки агентів.
За допомогою інерційних програм моделюються реальні системи з недетермінованою поведінкою агентів і середовищ. Реалізація систем інерційного програмування вимагає застосування программ-симуляторов, а не інтерпретаторів, а також постановки цілей для отримання конкретних результатів.
Ця парадигма отримала практичне застосування в дослідних проектах фірми Motorolla, а розвиток її теоретичного апарату виконується в ІК НАН України під керівництвом член.-кор., професора, Летічевського О.А.
Разом з новими парадигмами програмування формується загальна теорія програмування, так звана програмологія, яка об'єднує ідеї логіки, математики і інформатики, уточнює поняття програми і програмування, і на єдиній концептуальній основі створює загальний формальний апарат для конструювання програм.
Серед найважливіших понять і принципів програмування виділяються поняття композиції і принцип композиційності, який розглядає програми як функції, що будуються з інших функцій за допомогою спеціальних операцій, які називаються композиціями.
Принцип композиційності став основним в композиційному програмуванні. На основі композиційної експлікації (від explication-уточнення, роз'яснення) поняття програмування було створено логіко-математичну систему композиційної побудови програм, що отримала надалі назву експлікативного програмування. Експлікативне програмування інтегрує в собі всі найбільш важливі парадигми програмування (структурне, функціональне, об'єктно-орієнтоване і ін.) в рамках концептуально єдиної експлікативної платформи, основу якої складає три основні типи об'єктів: самі об'єкти, засоби побудови з одних об'єктів інших (функції) і програмологічні засоби застосування засобів побудови (композиції). Цей теоретичний напрямок розвивається в університеті ім.Т.Шевченка (Редько В.Н), а прагматично орієнтовану конкретизацію експлікативного програмування представляє собою еталонне програмування.
ВИСНОВКИ
Основні парадигми програмування склалися у міру зростання складності вирішуваних завдань. Відбулося розшарування засобів і методів програмування залежно від глибини і спільності опрацювання технічних деталей організації процесів комп'ютерної обробки інформації. Виділилися різні стилі і технології програмування. До основних парадигм програмування відносяться: процедурне, функціональне, логічне та алгебраїчне.
Напрям розвитку парадигм програмування відбиває зміну кола фахівців, зацікавлених в розвитку і використанні інформаційних технологій.
Література.
