이 장에서는 세 가지 패러다임인 구조적 프로그래밍, 객체지향 프로그래밍, 함수형 프로그래밍에 대해 다룬다.
구조적 프로그래밍
구조적 프로그래밍은 최초로 적용된 패러다임으로 goto
문은 if
/ then
/ else
와 do
/ while
/ until
문으로 대체해야 한다는 것이다.
구조적 프로그래밍은 제어흐름의 직접적인 전환에 대해 규칙을 부과한다.
객체 지향 프로그래밍
객체 지향 프로그래밍은 함수 호출 스택 프레임을 힙으로 옮기면 지역 변수가 오랫동안 유지될 수 있음을 발견하고 만들어졌다. 이런 함수가 생성자가 되었고, 지역 변수는 인스턴스 변수, 중첩 함수는 메서드가 되었다. 함수 포인터를 특정 규칙에 따라 사용하는 과정을 통해 필연적으로 다형성이 등장했다.
객체 지향 프로그래밍은 제어흐름의 간접적인 전환에 대해 규칙을 부과한다.
함수형 프로그래밍
함수형 프로그래밍은 세 패러다임 중 가장 먼저 만들어졌으나 최근에서야 도입되기 시작했다. 함수형 프로그래밍의 핵심은 가변 변수가 없다는 것이다.
함수형 프로그래밍은 할당문에 대해 규칙을 부과한다.
생각할 거리
각 패러다임은 프로그래머에게서 권한을 박탈한다. 즉, 프로그래머가 지켜야 할 규칙을 추가한다.