01 Авг 2023
5 мин
3139

Что такое парадигмы программирования

Есть две основные парадигмы программирования: императивная и декларативная.

Содержание

Парадигмы программирования — это свод требований, которые используются в разных языках программирования. Их нельзя назвать статичным стоп-листом: это, скорее, варианты решения определенных задач.

Что такое парадигмы программирования

Парадигма — это набор взаимосвязанных требований и принципов, которые используют в процессе разработки программного обеспечения для ПК. Именно она регулирует и влияет на стилистику будущей программы, но при этом не влияет на выбор языка программирования.

От парадигм зависят любые этапы программирования: шаблоны, свойства, паттерны, структура, архитектура программы или мобильного приложения.

Императивное программирование

Главное отличие этого типа — последовательное выполнение задач. Большая часть языков заточена именно под него.

Раньше процедурные языки были популярными и востребованными у разработчиков ПО. Сейчас распространено объектно-ориентированное программирование (ООП).

📌 Процедурное программирование

Такой тип используется в языках C, Pascal, COBOL, ALGOL, BASIC, Fortran и т. д.

Базовое понятие — это функция или процедура в виде последовательно записанных и названных действий. Например, когда вы покупаете конструктор «Лего», его нужно собрать. Схема сборки, которая идет в комплекте, — и есть функция.

Несмотря на то что понятия «процедура» и «функция» — синонимы, функциональное и процедурное программирование — разные вещи. Функциональное основано на декларативной парадигме, а процедурное — на императивной.

Когда мы отдаем машину в ремонт, например перебрать двигатель, то нас не интересует, какие процессы выполняет автомеханик. Главная задача — получить результат. Аналогично и с вызовом функции. Необходимо знать только наименование процедуры и технику ее использования.

📌 Объектно-ориентированное программирование

Этот подвид применяется в языках Java, Python, C++, Ruby, C#, Objective-C, PHP и подобных.

Такой тип самый распространенный и многофункциональный. Здесь есть объекты, которые самостоятельно выполняют заданные функции, и настройка связей между ними.

С помощью ООП разработчик может настраивать связи между частями программы. Всё это нужно, чтобы выполнять разнородные операции и разделять их между сотрудниками. А еще так легче выполнять и тестировать ПО в автоматическом режиме.

Освоить ООП можно на курсах Skypro, например «Java-разработчик». За несколько месяцев выучите базовую теорию и закрепите знания на практике. Опытные наставники и кураторы будут поддерживать и мотивировать, а специалисты центра карьеры помогут найти работу еще до завершения курса.

Декларативное программирование

На контрасте с императивным стилем развивался и декларативный. В нём собирали лучшие практики, которые со временем стали парадигмами.

📌 Логическое программирование

Здесь речь идет скорее о математике, чем о программировании. Основа — использование математических доказательств и законов логики. Всё это помогает решать поставленные бизнес-задачи.

Чтобы успешно пользоваться таким типом программирования, важно уметь переводить любую задачу на язык математики.

Моделирование процессов — сегмент, в котором логическое программирование наиболее популярно.

📌 Функциональное программирование

Этот тип близок к понятию функции в математике — особенно та часть, которая касается раздела о преобразовании данных.

Главный нюанс в том, что функция должна быть чистой, не имеющей побочных эффектов или переменных внешней среды. Когда функция изменяет глобальную переменную или вызывает метод внешнего объекта, то она изменяет и внешнюю среду. В этом заключается побочный эффект.

Примеры использования парадигм программирования

Процедурная — для написания кода микрочипа

Здесь может быть особенно специфический процессор для разработки компилятора сложного объектно-ориентированного языка. Но надо помнить, что технических возможностей чипа может быть мало, чтобы программы нормально функционировали на современных языках.

Объектно-ориентированная

Есть много приложений для компьютеров и смартфонов, популярных интернет-сервисов, «умных» телевизоров и роутеров, которые написаны на объектно-ориентированном языке.

Декларативная — для описания внешнего вида сайтов

Здесь пишут на языке CSS. Через него указывают шрифт текста, цвет фона, размер картинки.

Функциональная — для криптовалюты и блокчейна

В этих областях главное — надежность. Они новые, поэтому открыты для экспериментов. Прочие языки стирают грань между математикой и программированием — это позволяет программировать математические доказательства.

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

Но есть такие, которые используют в языках для специфических задач. Например, логическую парадигму разработчики берут для решения математических уравнений, а язык Prolog решает судоку.

Сравнение парадигм программирования

Представим, что есть массив следующих чисел:

412, 5, 625, 243, 2, 14, 30, 79, 4, 634, 367, 8, 34, 798, 159

В декларативном программировании разработчик пишет:

Получить из массива N все числа, которые больше 5 и меньше 500


В этом случае разработчику нужен исключительно конечный результат, а не процесс исполнения задачи.

Если выбрать императивный вариант программирования, то придется самостоятельно написать код, проверяющий все числа из массива N на соответствие условию. Код должен уметь выписывать их в новый массив.

Создать массив N с числами …;

объявить переменную i со значением 0;

Начало цикла:

Если значение элемента номер i больше 5 и меньше 500, то добавить его в массив N2;

Прибавить к переменной i единицу;

Повторять, пока значение переменной i меньше количества элементов массива N;

Конец цикла;

Вернуть массив N2;

То есть в декларативном программировании разработчик говорит, что ему нужно. А в императивном — как это можно получить.

Рассмотрим на примере:

Python (императивный) Python (декларативный)
n = arr = [412, 5, 625, 243, 2, 14, 30, 79, 4, 634, 367, 8, 34, 798, 159]
result = []
for i in range(len(arr)):
    if arr[i] > 5 and arr[i] < 500:
        result.append(arr[i])
print(result)
n = [412, 5, 625, 243, 2, 14, 30, 79, 4, 634, 367, 8, 34, 798, 159]
result = list(filter(lambda x: x > 5 and x < 500, arr))
print(result)

Освойте популярные языки программирования Java и Python с нуля в онлайн-университете Skypro. Программы соответствуют требованиям работодателей, постоянно обновляются. В конце обучения вы получите диплом и новую работу: гарантию трудоустройства фиксируем в договоре или возвращаем деньги за курс.

Если писать код на декларативном языке проще, зачем тогда выбирают императивное программирование? Есть три причины:

  1. Декларативное программирование не работает без императивного.
  2. На декларативном языке нельзя работать с задачами, для решения которых нужен доступ к состоянию программы.
  3. У императивного программирования меньше ограничений.

Главное

  • Парадигма — это набор взаимосвязанных требований и принципов, которые используют в процессе разработки программного обеспечения для ПК.
  • От парадигм зависят любые этапы программирования: шаблоны, свойства, паттерны, структура, архитектура программы или мобильного приложения.
  • Есть императивное программирование и декларативное. Императивное включает в себя процедурное и объектно-ориентированное программирование. Декларативное — логическое и функциональное.

Содержание

Добавить комментарий

Пройти тест на профессию