반응형
언어 설계에 미친 영향
- Computer Architecture(컴퓨터 구조)
- 컴퓨터의 기본 구조는 언어 설계에 영향을 끼치는데, 지금까지 널리 사용된 대부분의 언어는 폰 노이만 구조에 기반하여 설계된 명령형 언어들이다.
※ Von Neuman Architecture(폰 노이만 구조)
- 메모리에 프로그램(명령어와 데이터) 저장하고 순차적으로 실행한다.
-CPU는 메모리에 저장된 명령어를 하나씩 가져와서 인출(fetch)-해석(decode)-실행(execute)을 반복한다.
※ 명령형 언어(Imperative languages)의 특징
- 메모리 위치를 표현하는 변수의 사용
- 변수의 값을 변경하기 위한 대입문의 사용
- 명령의 순차적 실행_반복
이러한 특징들 때문에 명령형 언어는 폰 노이만 구조의 컴퓨터에서 빠르고 효율적이게 동작한다. - Program Design Methodologies(프로그래밍 설계 방법론)
- 다양하고 새로운 방법론 패러다임의 등장 ex) 객체지향
프로그래밍 언어의 분류
- Imperative Language(명령형 언어)
- ex) C/C++, Java, JavaScript - Functional Language(함수형 언어)
- 수학적인 함수를 기반으로 프로그램이 수행되는 언어
- 변수 및 대입문이 없음 (매개변수로 입력을 받아 처리)
- 반복문이 없음 (재귀에 의한 반복)
- ex) LISP, Scheme, ML, F# - Logic Language(논리 언어)
- p -> q 형태의 술어 논리를 기반으로 하여 선언적으로 프로그래밍하는 언어
- 반복문, 선택문 등의 제어 추상화가 없음
- 변수는 메모리 위치가 아니라 부분 결과 값에 대한 이름임
- ex) Prolog
언어 설계의 절충(Trade-off)
- Reliability(신뢰성) vs Cost of execution(실행 시간)
- ex) 자바는 배열 원소에 대한 모든 참조가 적합한지를 검사하는데 이로 인해 신뢰성은 올라가지만 실행 시간이 늘어난다. - Readability(판독성) vs Writability(작성력)
- ex) APL은 많은 수학적인 연산자를 지원하는데 이로 인해 작성력은 올라가지만 판독성은 떨어진다. - Writability(작성력) vs Reliability(신뢰성)
- ex) C/C++의 포인터는 주소를 가르키는데 매우 유용하게 사용되어 작성력은 올라가지만 신뢰성은 떨어진다.
반응형
'PL' 카테고리의 다른 글
[PL] 어휘분석과 구문분석(Lexical and Syntax Analysis) (0) | 2022.04.17 |
---|---|
[PL] Semantic의 표현 (0) | 2022.04.17 |
[PL] Syntax의 표현 (0) | 2022.04.15 |
[PL] 프로그래밍 언어 구현 방법 (0) | 2022.04.14 |
[PL] 프로그래밍 언어 평가 기준 (0) | 2022.04.13 |