프로그래밍 패러다임이란, 프로그래밍 언어들을 특징을 기반으로 분류하는 방법론이다.
각 언어는 여러 패러다임에 속할 수 있다.(파이썬은 함수형이기도하고 객체지향이기도하고...)
프로그래머가 프로그래밍의 관점을 갖게 해주고 결정하는 역할을 한다.
Declarative와 Imperative의 세부 분류와 각각에서의 중요 키워드를 정리한다.
Declarative(선언형)
Functional(함수형, 순수함수(Pure function), 부작용(side-effects), 고계함수(Hihger-order function), 커링(currying), 컴비네이터(combinator))
Imperative(명령형)
Procedural(절차형)
Object-oriented(객체지향형, 추상화(Abstraction), 인터페이스(Interface), 추상클래스(Abstact class), 캡슐화(Encapsulation), 상속(Inheritance), 다형성(Polymorphism, Overriding, Overloading))
기타:
절차형 VS 객체지향형
"절차지향 프로그래밍은 프로그램의 순서와 흐름을 먼저 세우고 필요한 자료구조와 함수들을 설계하는 방식이고, 객체지향 프로그래밍은 반대로 자료구조와 이를 중심으로 한 모듈들을 먼저 설계한 다음에 이들의 실행순서와 흐름을 짜는 방식이다"
Higher-order function이란, argument내에 function이 존재하거나 return에 function인 function
Combinator란, argument가 function이나 combinator로만 구성된 higher-order function
참고자료:
'CS' 카테고리의 다른 글
(미완)UML, Unified Modeling Language란 (0) | 2020.11.22 |
---|---|
[Python]Static variable, Static method, Class method (0) | 2020.11.22 |
[Algorithm]Find all sampling from nested dictionary of list (0) | 2020.11.15 |
[Algorithm]the shortest repetitive pattern in a string (0) | 2020.11.14 |
[Python] Walrus Operator (0) | 2020.11.14 |