1.4 계산전형 computationmal paradigm
1. 명령형 언어 또는 절차적 언어
명령 순차적 실행 ex. C..
+ 코드 추적, 메모리 최적화 용이. 범용성 높다.
- 계산 시간 비효율
2. 함수형 언어 또는 적용형 언어
함수의 평가와 적용이 기본이 된다. ex. LISP...
따로 변수 선언 X
반복 연산은 재귀적 함수 사용 (recursive call)
+ 함수 밖에서 어떻게 할수 없음. 무조건 다 local = protected env
제한된 영역에서는 readability가 높다.
side effect 없음.
- 모든 것을 실시간 체크-> 메모리와 실행 시간 증가. 범용성 낮다.
**side effect = 부가적 효과 (긍부정 x)
내가 가진 변수가 아닌데에도 변경하는 경우. ex. return 한 이후에, 영향받은 변경한 값이 남아있는 경우
3. 객체지향 object-oriented 언어 (OOP)
현실의 object를 모방. ex. C++, java...object = object의 집합이다. & data와 code의 결합이다.독립적 object 간의 interaction을 중심으로 프로그래밍 (data 전달이 아닌 data를 가진 메소드에게 요청하는 형식)class(추상화한 템플릿) vs. instance(실존하는 객체) => 둘을 합하면 object
+ 관리 용이. 확장성(기능 추가 쉽다). - real world는 상속 개념 명확히하기 어렵다.c++은 parent class 여럿.(헷갈림). java는 하나(실제로는 말이 안되는) ->객체지향은 설계 난이도 증가instance는 실행하면서 생성.사용하는 것이 많아서 실행 성능 저하.
1.5 언어 정의
언어 정의의 범주
구문 syntax 정의 / 의미 semantics 정의
1. 구문론
형식
'컴퓨터 언어 > 프로그래밍언어' 카테고리의 다른 글
3.3 프로그래밍 언어 (0) | 2021.03.03 |
---|