답변

37

구조화 된 프로그래밍은 기능적, 절차 적 및 그 밖의 많은 것을 포함하는 것으로 생각되는 오래된 용어입니다. 이것은 기본적으로 명령어에서 명령어로 직접 점프하는 것이 아니라 명시적인 제어 흐름 구조를 사용한다는 것을 의미합니다.

기능적 프로그래밍과 절차 적 프로그래밍 모두 그런 의미에서 구조화 된 패러다임입니다. 함수형 프로그래밍은 또한 선언적 프로그래밍입니다. 코드에 주어진 구조가 의미에 해당합니다. 프로그램은 세계의 상태를 변경하는 함수입니다. 절차 적 프로그래밍이란 Java 및 C++와 같은 OO 언어를 비롯하여 모든 C 언어 또는 그 자손에서 "일반적인"프로그래밍을 고려하는 것입니다. 프로그램은 연속적으로 실행되는 일련의 명령어로, 그 과정에서 하위 프로 시저를 호출합니다. 이 고명 한 바와 같이

또는 : 는 수학자에 문제를 설명처럼

기능 프로그램입니다. 명령형 프로그래밍 은 바보에게 지침을주는 것과 같습니다.

--- arcus, #scheme on Freenode 
+0

을 인용문은 영업 이익의 원래 문제를 해결하는 데 도움이 정말 관련없는, 견적이 차이에 대해 때문에 기능적 및 필수 프로그래밍 패러다임 (예, 절차 적 프로그래밍은 일반적으로 명령 프로그래밍의 하위 패러다임으로 간주되지만). 게다가, Java는 함수 프로그래밍과 관련된 람다 함수와 같은 Java 8의 새로운 기능을 제외하고는 Java에서 모든 것이 클래스 또는 객체이므로 절차 적 프로그래밍을 실제로 지원하지 않는다고 주장합니다. 그래서, 나는이 대답을 downvote했습니다. – nbro

9

함수 프로그래밍 일류 소자로서 기능을 사용하고있다. 고차 함수의 사용 (함수의 가져 오기 및/또는 반환); 강력한 구조와 잘 분류 된 코드로 이어집니다. 어떤 사람들은 FP의 순도 측면에 초점을 맞 춥니 다. 즉, 동일한 입력이 주어지면 함수는 항상 동일한 결과를 반환해야합니다. 이것들은 FP의 두 가지 기본 기둥입니다. 근본적으로 부하/저장 장치 수준 지침에서 약간 벗어난 것으로 부작용을 피하는 것도 볼 수 있습니다.

구조화 된 프로그래밍은 Djikstra의 "Goto Considered Harmful"문서로 돌아갑니다. if/then/else/elif 구조체, goto를 사용하는 대신 do/while/until/for 루프 등을 사용하는 것을 의미합니다. 이것은 본질적으로 비교/분기 기계 수준 명령에서 약간 벗어난 것입니다. 구조화 된 프로그래밍은 기능적 프로그래밍 및 절차 적 프로그래밍과 직각을 이룹니다.

필자가 생각하기에 절차 프로그래밍은 일반적으로 "표현"과 반대되는 일련의 "명령문"으로 구성된 명령형 "서브 루틴"(순수한 "함수"와 반대)을 프로그래밍하는 것을 의미합니다.

+0

절차 프로그래밍은 명령 프로그래밍의 하위 패러다임이며 여기에 명시되어 있습니다. https : //en.wikipedia.org/wiki/Imperative_programming – nbro

+0

사실, "(때로는 '필수 프로그래밍')을 제쳐두고 삭제할 것입니다. 절차 적 절차는 정말로 필수적입니다. 일부 언어에서는 필수적으로 "절차"를 프로그램 할 수 있습니다. 그러나 "절차"와 "기능"의 주요 차이점은 전자가 반드시 필요하다는 것입니다. 그것이 내가 의미했던 것입니다. – AshleyF

관련 문제