Подтвердить что ты не робот

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

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

4b9b3361

Ответ 1

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

Функциональное и процедурное программирование - это, в этом смысле, структурированные парадигмы. Функциональное программирование также является декларативным программированием - структура, данная вашему коду, соответствует его значению - программа - это функция, которая изменяет состояние мира. Процедурное программирование - это то, что вы считаете "типичным" программированием на любом языке C или его потомках, включая языки OO, такие как Java и С++. Программа представляет собой серию инструкций, которые должны выполняться последовательно и вызывать подпроцедуры на этом пути.

Или, как это было знаменито описано:

Функциональное программирование похоже на описывая вашу проблему математик. Императивное программирование это как указание идиот.

    --- arcus, #scheme on Freenode

Ответ 2

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

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

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

Ответ 3

Также смотрите:

Ответ 4

Поделиться видео, чтобы понять программирование прошлого, настоящего и будущего. Проверка 57:50 Структурированное программирование. Не используйте безудержный переход. Функциональное программирование. Не используйте назначения. Объектно-ориентированное программирование. Не используйте указатели на функции.

https://www.youtube.com/watch?v=ecIWPzGEbFc