2.13M
Category: programmingprogramming

Парадигмы программирования

1.

Парадигмы программирования
(с примерами на языке R)
Общие понятия. Эволюция парадигм.
Современное состояние
Голубничий А.А.
[email protected]
@Golubnichij

2.

Структура модуля
• основные понятия;
• различные толкования;
• история становления парадигм программирования;
• рейтинг языков программирования по TIOBE;
• разные подходы к парадигмам программирования;
• языки и парадигмы.
2

3.

Основные понятия
Парадигма (от греч. παράδειγμα, «пример, модель, образец») –
совокупность фундаментальных научных установок, представлений и
терминов, принимаемая и разделяемая научным сообществом и
объединяющая большинство его членов. Обеспечивает
преемственность развития науки и научного творчества.
«Под парадигмой я понимаю признанные всеми
научные достижения, которые в течение
определённого времени дают научному
сообществу модель постановки проблем и их
решения»
Томас Сэмюэл Кун, 1962
3

4.

Основные понятия
Программирование – процесс создания компьютерных программ
Программирование основывается на использовании языков
программирования, на которых записываются исходные тексты
программ.
«Алгоритмы + структуры данных = программы»
Никлаус Вирт, 1975
4

5.

Основные понятия
Парадигма программирования – это совокупность идей и понятий,
определяющих стиль написания компьютерных программ. Это
способ концептуализации, определяющий организацию вычислений
и структурирование работы, выполняемой компьютером.
«Если прогресс искусства программирования в
целом требует постоянного изобретения и
усовершенствования парадигм, то
совершенствование искусства отдельного
программиста требует, чтобы он расширял свой
репертуар парадигм»
Роберт В Флойд, 1978
• новая парадигма не отменяет предыдущую;
• парадигмы могут сочетаться.
5

6.

Различные толкования
«Слово «парадигма» используется в программировании для
определения семейства обозначений (нотаций), разделяющих общий
способ (методику) реализаций программ».
Диомидис Спинеллис
«Стиль программирования как описания намерений программиста»
Дэниел Бобров
«Модель или подход к решению проблемы»
Брюс Шрайвер
«Подход к решению проблем программирования»
Линда Фридман
«Правила классификации языков программирования в соответствии с
некоторыми условиями, которые могут быть проверены»
Питер Вегнер
6

7.

История становления парадигм
программирования
7

8.

Рейтинг языков программирования по TIOBE
8

9.

Разные подходы к парадигмам
программирования
9

10.

Разные подходы к
парадигмам
программирования
10

11.

Языки и парадигмы
Процедурные:
Ada
JavaScript
Bash
Kotlin
BASIC
Lua
C
Pascal
C++
PHP
C#
Python
Fortran
R
Go
Rust
Java
Swift
Функциональные:
C++
C#
Haskell
Java
JavaScript
Kotlin
Lua
PHP
Python
R
Rust
Swift
ООП:
Ada
Kotlin
C++
Lua
C#
PHP
Fortran
Python
Go
R
Java
Rust
JavaScript Swift
11

12.

Языки и парадигмы
Мультипарадигмальный язык программирования – язык, который
был разработан специально как инструмент мультипарадигмального
программирования, т.е. возможности которого изначально
предполагалось унаследовать от нескольких, чаще всего не
родственных языков.
Ada C C++ C# Erlang Prolog F# Go Java JavaScript Haskell
Императивная
+
+
+
+


+
+
+
+
+
ООП
+

+
+


+
+/–
+
+

Функциональная


+/–
+/–
+

+
+/–
+/–
+/–
+
Обобщенное
+
+
+/–
+
+
+
+

+
+
+
Декларативная



+/–
+
+
+


+/–
+
12
English     Русский Rules