Исследуя (книги, Википедию, похожие вопросы по SE и т. Д.), Я понял, что императивное программирование является одной из основных парадигм программирования, где вы описываете серию команд (или операторов), которые должен выполнять компьютер (так что вы довольно Многое прикажи ему предпринять конкретные действия, отсюда и название «императив»). Все идет нормально.
С другой стороны, процедурное программирование - это особый тип (или подмножество) императивного программирования, где вы используете процедуры (т. Е. Функции) для описания команд, которые должен выполнять компьютер.
Первый вопрос : существует ли императивный язык программирования, который не является процедурным? Другими словами, вы можете иметь императивное программирование без процедур?
Обновление : на этот первый вопрос, похоже, дан ответ. Язык МОЖЕТ быть императивным, не будучи процедурным или структурированным. Пример - чистый ассемблер.
Затем у вас также есть Структурное программирование, которое, кажется, является другим типом (или подмножеством) императивного программирования, которое появилось, чтобы убрать зависимость от оператора GOTO.
Второй вопрос : в чем разница между процедурным и структурным программированием? Можете ли вы иметь одно без другого, и наоборот? Можем ли мы сказать, что процедурное программирование является подмножеством структурного программирования, как на рисунке?