Чем отличается процедурное программирование от императивного?

Описание двух стилей очень похожи. Или это одно и то же ?
  • Вопрос задан
  • 819 просмотров
Пригласить эксперта
Ответы на вопрос 2
Adamos
@Adamos
Есть процедура: перед тем, как задавать вопрос, погуглить самостоятельно.
Есть императив: погугли, прежде чем задавать такие вопросы.
Поскольку ни то, ни другое не выполняется, разницы никакой.
Ответ написан
Комментировать
При императивном подходе можно считать, что в Вашем распоряжении есть исполнитель, который понимает определённый набор команд. Он может копать, может не копать, может сделать ветвление, цикл, присвоение, вызов и т.д.

Императивному подходу часто противопоставляют декларативный. Вы не говорите, что должен делать исполнитель. Вместо этого описывается (декларируется) желаемый результат. Как правило, декларативный подход является более высокоуровневым. Например, составляя SQL запросы, мы не рассказываем СУБД, как именно получать результат (как правило). Это детали реализации, которые нас не волнуют.

Сравните, например, два подхода к управлению инфраструктурой:
  • Зайти по SSH на такую-то машину;
  • Установить такой-то пакет;
  • Скопировать конфиг туда-то.

и
  • Мне нужна машина такая-то,
  • На которой есть такой-то пакет,
  • У которого есть такая-то конфигурация.
Процедурное программирование - это способ организации императивных программ. Во-первых, это программирование структурное. Условно говоря, у нас нет оператора goto. Есть процедуры. В качестве параметров процедуры получают рычаги для манипуляции данными. В своём коде процедуры "дёргают" за эти рычаги. Они могут читать свои параметры, менять свои параметры, выполнять к ним вызовы. Вы можете столкнуться с процедурным программированием при написании хранимых процедур для PostgreSQL. Из реального мира: отдавая туфли в починку, Вы применяете процедурный подход.

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

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы