이전 포스트/클린 아키텍처

3장 패러다임 개요

병고라니 2021. 3. 21. 09:19

 

 

구조적 프로그래밍 .


1968년 에츠허르 비버 데이크스트라가 발견했다.

데이크스트라는 무분별한(goto 문장)는 프로그램 구조에 해롭다는 사실을 제시했다.

데이크스트라는 이러한 점프들을 if/then/else와 do/while/until과 같이 더익숙한 구조로 대체했다.

구조적 프로그래밍은 제어흐름의 직접적인 전환에 대한 규칙을 부과한다. 

 

 

객체 지향 프로그래밍 


1966년 요한 달과 크리스텐 니가드에 의해 등장했다. 

이들 두 프로그래머는 알골 언어의 함수 호출 스택프레임을 힙으로 옮기면, 함수 호출이 반환된 이후에도 함수에서 선언된 지역 변수가 오랫동안 유지될 수 있음을 발견했다. 바로 이러한 함수가 클래스의 생성자가 되었고, 지역 변수는 인스턴스 변수, 그리고 중첩 함수는 메서드가 되었다. 함수 포인터를 특정 규칙에 따라 사용하는 과정을 통해 필연적으로 다형성이 등장하게 되었다.

 

객체 지향 프로그래밍은 제어흐름의 간접적인 전환에 대해 규칙을 부과한다. 

 

함수형 프로그래밍


알론조 처치는 앨런 튜링도 똑같이 흥미를 느꼈던 어떤 수학적 문제를 해결하는 과정에서 람다 계산법을 발명했는데, 함수형 프로그래밍은 이러한 연구 결과에 직접적인 영향을 받아 만들어졌다.

 

함수형 프로그래밍은 할당문에 대해 규칙을 부과한다. 

 

생각할 거리


각 패러다임은 프로그래머에게서 권한을 박탈한다.

어느 패러다임도 새로운 권한을 부여하지 않는다. 

세가지 패러다임 각각은 goto문, 함수포인터, 할당문을 가져갔다. 더이상 가져갈께 없으므로

프로그래밍 패러다임은 앞으로도 딱 세가지밖에 없을것이다.