티스토리 뷰

고급언어의 기능으론 다음의 3가지가 있다.

 

1. Data Abstraction

2. Process Abstraction

3. Data & Process Abstraction

 

1은 메모리에 저장되는 데이터 타입을 의미한다. 예를 들면, char, int, double, boolean, string 같은 것 말이다.

특히 변수, 배열, 구조체 등으로 메모리 블록에 명칭을 부여하는 기능도 제공한다.

2는 기계어 명령 여러 개를 구조화 시킨 것을 의미한다. 예를 들면, if, for, while 같은 구문과 함수, 프로시저 등이다.

3은 Class, Module, Package를 의미한다.

 

고급언어는 다음과 같은 특성을 가진다.

1. 단순성 (overall simplicity) : 어떤 현상을 단순하게 하여 쉽게 쓸 수 있도록 한다.

2. 직교성 (orthogonality) : 단순한 기능을 모아 복잡한 기능을 제공할 수 있다.

3. 표현력 (expressivity) : 똑같은 역할을 수행하는 코드를 다양한 형태로 표현할 수 있다. (for, while 같은 것)

4. 이식성 (portability) : Operating system 또는 하드웨어에 구애받지 않고 컴파일이 가능하다.

5. 추상화 (abstraction) : 앞서 말한 고급언어의 기능과 같다.

6. 일반성 (generality) : 여러 개념을 하나의 개념으로 묶어서 사용한다. (변수)

 

고급언어는 다음과 같은 패러다임을 가진다.

1. 명령형 (imperative=procedural language) : C

2. 함수형 (functional language)

3. 논리형 (logic language)

4. 객체지향 (object oriented language) : C++, JAVA

 

언어의 구현방식은 다음과 같이 구별할 수 있다.

1. Compiler 구현 - 소스코드 전체를 번역 후 기계어로 변환시킨다. Pure interpreter보다 속도가 빠르다.

2. Pure interpretation - 실행할 때 항상 소스코드가 필요하다. 매번 실행할 때마다 코드를 기계어로 번역하여 compiler보다 속도가 현저히 느리다.

3. Hybrid interpretation - 처음 실행할 때 compiler로 번역한 뒤 interpret 해준다. 그 이후 실행에서는 만들어진 기계어를 사용한다.

4. Cross compiler - 원시 프로그램의 번역이 이루어지는 컴퓨터와 번역된 기계어에 이용되는 컴퓨터가 서로 다른 기종의 컴퓨터일 때 사용하는 컴파일러

(Android App Studio처럼 컴퓨터로 App을 미리 컴파일 후 오류가 없다면 핸드폰으로 App을 옮기는 방식이라고 이해하면 편하다.)

** 인터프리터는 매 실행마다 코드를 해석하고 실행하기 때문에 소스코드가 항상 필요하다. 반면 컴파일러는 컴파일을 하면 기계어로 번역된 파일(.exe)이 생성되어 어디서든 소스코드 없이 실행이 가능하다.

** 따라서, 인터프리터가 컴파일러에 비해 속도가 느리다.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함