절차적 프로그래밍(Procedure programming)
절차적 프로그래밍은 처리(processing) 과정과 그에 적합한 자료 구조의 설계에 초점을 맞춘 프로그래밍 패러다임(스타일)이다. 이는 C가 지원하도록 설계된 방식이다. C++에서 이를 지원하는 수단은 내장 타입(built-in types), 연산자, 문(statements), 함수, 구조체(struct), 공용체(union) 등이 있다. 사소한 예외를 제외하면, C는 C++의 부분집합(subset)이다. C와 비교했을 때, C++은 많은 추가적인 언어 구성요소와 더 엄격하고 유연한 지원적인 타입 시스템의 형태로 절차적 프로그래밍에 대한 추가적인 지원을 한다.
- Stroustrup, B. (2013). The C++ Programming Language (4th ed.). Addison-Wesley. ISBN 978-0-321-56384-2.
- 위치: 1.2.1 "Programming Style", p. 11
- https://chenweixiang.github.io/docs/The_C++_Programming_Language_4th_Edition_Bjarne_Stroustrup.pdf
절차적 프로그래밍은 컴퓨터 프로그램의 동작을 서로를 호출하는 프로시저(Procedure, 즉 함수(function))로 구현하는 것을 가리킨다. 그 결과로 만들어진 프로그램은 자신을 구성하는 프로시저들에 대한 호출의 계층 구조를 이루는 일련의 단계이다. 함수 호출을 통해 추상화와 재사용성을 얻는 것이 본질이다.
오해가 생길만한 여지는 한글로 번역되며 여기서 절차적은 순차적처럼 느껴지는데, 절차적 프로그래밍의 Procedure란 "절차적"이라는 의미가 아닌 함수라는 의미로 해석해야 한다. 사실 순차적으로 실행되지 않는 프로그램이 어디있으랴. 병렬적으로 동작을 하는 쓰레드가 있다 한들, 메인 쓰레드는 기본적으로 있을텐데 말이다.