Перейти к содержанию

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

Основные парадигмы

Есть два основных подхода к программированию:

  • Императивное программирование - фокусируется на том, как выполнить, определяет управление потоком, как заявления, которые изменяют программу состояния
  • Декларативное программирование - фокусируется на том, что выполнять, определяет логику программы, но не детализирует поток управления

И есть три базовых стиля программирования:

  • Процедурное программирование, структурированное программирование - определяет шаги, которые должна выполнить программа, чтобы достичь желаемого состояния (императивный подход)
  • Объектно-ориентированное программирование (ООП) - организует программы как объекты: структуры данных, состоящие из полей данных и методов вместе с их взаимодействиями (императивный подход)
  • Функциональное программирование - рассматривает программы как оценивающие математические функции и избегает состояния и изменчивых данных (декларативный подход)

Поддерживаемые стили программирования являются одним из самых важных признаков при сравнении и выборе подходящего языка программирования.

Подпрограммы, которые реализуют методы ООП, могут в конечном итоге быть закодированы в императивном, функциональном или процедурном стиле, который может или не может напрямую изменять состояние от имени вызывающей программы. Между парадигмами неизбежно есть некоторое совпадение.

Типы программирования

Ниже приведены распространенные типы программирования, которые могут быть реализованы с использованием различных парадигм:

  • Программирование, управляемое событиями - поток управления программой определяется событиями, такими как входные данные датчика или действия пользователя (щелчки мыши, нажатия клавиш) или сообщения от других программ или потоков
  • Программирование на основе автоматов - программа или деталь рассматривается как модель конечного автомата или любого другого формального автомата.
  • Реактивное программирование - это декларативная парадигма программирования, связанная с потоками данных и распространением изменений.

Подробнее: