본문 바로가기

컴퓨터 언어/프로그래밍언어

3.6

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