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



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

Испанская версия



Императив

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

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

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

Эта парадигма больше ориентирована на машину Тьюринга Алана Тьюринга, в которой мы заявляем, как мы хотим получить результат. Чтобы прояснить это немного больше, мы увидим пример.



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

customers = {'victoria': 100, 'regina': 120, 'alan': 60}

def update_customer_credit(customer_list):
    """
    update customer's credit
    """
    customer = customers['alan']

    if 'alan' in customer_list:
        while customer >= 10:
          customer -= 10
          print(customer)


update_customer_credit(customers)

Мы объявляем словарь ключ-значение под названием customers с 3 элементами.

Функция update_customer_credit запрашивает у нас список клиентов.

Внутри этой функции с помощью условного выражения мы фиксируем интересующий нас элемент.

С помощью цикла мы вычитаем кредит, который есть у клиента, пока не достигнем нуля.

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

Здесь мы видим ожидаемый результат.

50
40
30
20
10
0

декларативный

В этой парадигме мы определяем логику, но не управление потоком с помощью структур, которые мы уже рассмотрели, как в предыдущем примере.

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

Этот тип программирования основан на лямбда-исчислении Алонзо Чёрча, которое предназначено больше для человека, чем для машины, декларируя, что программист хочет сделать, а не как машина должна это делать.



Пример лямбда-выражений Python

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

# addition of two numbers
addition = lambda x, y: x + y
print(addition(10, 10))  # 20

# abstraction of two numbers
abstraction = lambda x, y: x - y
print(abstraction(10, 5))  # 5

Этот код определяет лямбда-функцию, называемую «сложением», которая принимает два аргумента, x и y. Затем он выполняет операцию сложения x и y вместе и возвращает результат.

Без императивного программирования не может быть декларативного программирования.

Отказ от ответственности

Примите этот код таким, какой он есть, примером для объяснения декларативного и императивного программирования.

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

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

Свяжитесь со мной



[email protected]

LinkedInGitHub