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

Я прочитал несколько статей по всем темам, но я не совсем понимаю различия.

3 ответов


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

или, как это было лихо описано:

функциональное программирование-это как описание вашей проблемы математик. Императивное Программирование как давать инструкции к идиот.

    --- arcus, #scheme on Freenode

функциональное программирование использует функции как первоклассные элементы. Использование функций более высокого порядка (принятие и/или возврат функций); что приводит к мощным конструкциям и хорошо учитываемому коду. Некоторые люди также фокусируются на аспекте чистоты FP, который означает, что функции всегда должны возвращать один и тот же результат, учитывая один и тот же вход. Я считаю, что это два основных столпа FP. Я также вижу, что избегание побочных эффектов по существу абстрагируется немного от машины загрузки / хранения инструкции уровня.

структурированное Программирование восходит к статье Djikstra "Goto считается вредным". Это означает использование структур if/then/else/elif, do/while/until/for и т. д. вместо того, чтобы прибегать к Гото. Это по существу абстрагирование немного от инструкций уровня машины сравнения / ветви. Структурированное Программирование ортогонально как функциональному, так и процедурному программированию.

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