Парадигма програмування
Паради́гма програмува́ння — це система ідей і понять, які визначають стиль написання комп'ютерних програм, а також спосіб мислення програміста.
Парадигма програмування — спосіб концептуалізації, що визначає організацію обчислень і структурування роботи, яку виконує комп'ютер[1].
Парадигма програмування унаочнює те, як програміст розглядає роботу програми; наприклад, за ООП — як множини об'єктів, тоді як за ФП — як послідовності обчислень функцій без станів.
Кожну окрему парадигму програмування характеризує наявність у ній методу та зв'язок із моделлю життєвого циклу. Спільним для різних парадигм програмування є загальні принципи проектування програмного продукту. Користувач може вибирати ту або іншу парадигму програмування з позицій зручності застосування для задач у ПрО та виготовлення конкретного програмного продукту[2].
Історія терміна
Своїм сучасним значенням у науково-технічній галузі термін «парадигма» зобов'язаний, вочевидь, Томасу Куну та його книзі «Структура наукових революцій». Кун називав парадигмами усталені системи наукових поглядів, у межах яких ведуться дослідження, відтак, у процесі розвитку наукової дисципліни може відбуватися заміна однієї парадигми на іншу[3], при цьому стара парадигма ще продовжує якийсь час існувати, ба навіть розвиватися завдяки тому, що багато її прихильників виявляються з тих чи інших причин нездатними перебудуватися до праці в іншій парадигмі.
Власне термін «Парадигма програмування» вперше застосував Роберт Флойд у своїй лекції[4] лауреата премії Тюрінга, відзначаючи, що в програмуванні можна спостерігати явище, подібне парадигмам Куна, але, на відміну від таких, парадигми програмування не є взаємовиключними:
Якщо прогрес мистецтва програмування в цілому вимагає постійного винаходу і вдосконалення парадигм, то вдосконалення мистецтва окремого програміста вимагає, щоб він розширював свій репертуар парадигм. |
Таким чином, на думку Роберта Флойда, на відміну від парадигм у науковому світі, описаних Куном, парадигми програмування можуть поєднуватися, збагачуючи інструментарій програміста.
Основні парадигми програмування
- Процедурне програмування
- Об'єктно-орієнтоване програмування
- Функціональне програмування
- Імперативне програмування
- Декларативне програмування
- Прототипне програмування
- Аспектно-орієнтоване програмування
- Предметно-орієнтоване програмування
- Функціонально-орієнтоване програмування
- Структурне програмування
- Модульне програмування
- Збірне програмування
- Програмування з абстрактними типами даних
- Схемне програмування
- Логічне програмування
- Паралельне програмування
- Компонентне програмування
- Агентно-орієнтоване програмування
- Алгебраїчне програмування
Мультипарадигмова мова програмування
Мультипарадигмова мова програмування — це мова програмування, яка підтримує кілька парадигм. Наприклад на Python можна писати як імперативні та об'єктно-орієнтовані, так і програми в функціональному стилі.
Примітки
- Основы информатики и программирования: Учебное пособие Архівовано 11 квітня 2011 у Wayback Machine.// Е. А. Роганов — М.: МГИУ, 2001. — Вузол VI.(рос.)
- Лавріщева К. М. Програмна інженерія Архівовано 4 березня 2016 у Wayback Machine. — К.: Академперіодика, 2008.- 319 с.
- Наприклад, геоцентрична небесна механіка Птолемея змінилася геліоцентричної системою Коперника.
- R.W. Floyd. The Paradigms of Programming Communications of the ACM, 22(8):455—460, 1979. — Російською див.: Лекции лауреатов премии Тьюринга за первые двадцать лет (1966—1985) — М.: МИР, 1993.