패러다임

2022. 7. 24. 17:14Study/CS

[서론]

소프트웨어 아키텍처는 Code로 부터 시작된다. 따라서 아키텍처에 대한 논의도 Code라고 불리는 것들이 최초로 작성된 시점부터 시작되었다.

 

바이너리 언어부터 어셈블리어, 컴파일러의 등장과 여러 언어의 탄생에 이어 언어에 맞게 여러가지 패러다임이 생성되었다.

그리고 현재는 세 가지의 패러다임만이 존재한다. 

 

[개요]

1. 구조적 프로그래밍

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

무분별한 점프가 프로그램 구조에 해롭다는 사실을 제시하고, if/then/else와 do/while/until 같은 익숙한 구조로 대체했다.

//goto를 지양한다.

 

2. 객체 지향 프로그래밍

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

함수 호출 스택 프레임을 힙에 옮기면, 함수에서 선언된 지역 변수가 오랫동안 유지될 수 있음을 발견했다. 이러한 함수가 클래스의 생성자가 되었다. (지역 변수는 인스턴스 변수, 중첩 함수는 메서드가 되었다.)

함수 포인터를 특정 규칙에 따라 사용하는 과정을 통해 다형성이 등장하게 되었다.

//함수 포인터를 지양한다.

 

3. 함수형 프로그래밍

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

함수형 프로그래밍의 근간이 되는 계산법은 람다 계산법으로, 람다 계산법의 기초가 되는 개념은 불변성과 심볼의 값이 변경되지 않는다는 개념이다. 이는 함수형 언어에는 할당문이 전혀 없다는 뜻이기도 하다.

//할당문을 지양한다.

'Study > CS' 카테고리의 다른 글

Tree  (0) 2022.02.06
정렬 C++  (0) 2021.06.01
OSI 7계층  (0) 2021.06.01
Graph  (0) 2021.05.30
Tree  (0) 2021.05.30