programming/c, c++

[C언어]고급언어와 저급언어(기계어, 어셈블리어)

ba0bab 2017. 12. 16. 03:19

고급언어

- 고급 프로그래밍 언어란 사람이 이해하기 쉽게 작성된 프로그래밍 언어 이다.

- 이해 가능 정도에 따른 분류 중 하나이며. 이는 저급언어와 고급언어로 나뉜다.

 

 

고급언어의 특징

- 저급 프로그래밍 언어 보다 가독성이 높고 다루기 간단하다.

- C언어, 자바 등 대부분의 프로그래밍 언어들은 고급언어에 속한다.

- 저급언어와는 다르게 특정 컴퓨터와 관계없이 독립적으로 프로그램을 만들 수 있다.

고급언어를 컴퓨터 언어인 기계어로 변환하기 위해 컴파일러와, 인터프리터 등이 있다.

계어로 변환하는 동안 시간이 소요되며 저급언어보다 프로그램 크기가 더 크다.

 

 

고급언어 와 저급언어로 나누는 기준

- 고급 프로그래밍 언어와 저급 프로그래밍 언어란 사람이 접근하기 쉬운가 어려운가의 차이를 두고 기준으로 하여 나뉘어져 있다.

람들에게 친숙한 언어로 이루어 질수록 고급 언어에 속하고 컴퓨터가 이해하기 쉽고 가까운 언어 일수록 저급언어로 분류 된다.

 

 

저급언어


- 컴퓨터가 이해하기 쉬운 이진법으로 이루어진 언어이다

- 컴퓨터가 바로 이행 할 수 있지만 가독성 및 생산성이 낮다.

- 프로그램 속도가 빠르다.

- 프로그램 크기 또한 고급언어 보다 작다.

- 저급언어에는 기계어와 어셈블리어 등이 있다.


기계어

-기계어란 cpu가 직접 해독하고 실행할 수 있는 비트 단위로 쓰인 컴퓨터 언어를 통틀어 일컫는다.

-기계어는 프로그램을 나타내는 가장 낮은 단계의 개념이다.

 

 

기계어의 특징

 

-기계어는 대부분 어셈블리어를 거쳐 짜여 지게 된다.

-어셈블리어가 아직 만들어 지기 전에는 기계어를 직접 입력하여 프로그램을 작성하기도 했다.

-퓨터가 알아들을 수 있는 유일한 프로그래밍 언어라고도 할 수 있다.

 

 

어셈블리어

-어셈블리어란 기계어를 사람이 이해하기 쉬운 기호와 1 : 1로 대응시켜 기호화한 프로그램 언어이다.

-기호 언어라고도 부른다.

 

 

어셈블리어의 특징

 

-저급언어 중에서도 밑바닥의 언어이다.

-기계와 바로 통신이 가능하다. 그래서 빠르게 기계를 제어 할 수 있다.

-최소한의 명령으로 이루어진 언어로 이진수 패턴을 사용하는 기계어와 비슷해서 명령을 내릴 때 매우 세밀하게 명령을 내린다.

-하드웨어를 사실상 제어하는 형태이기 때문에 하드웨어의 구조를 따라서 프로그램을 달리 햐야 한다.

-러한 특징 때문에 어셈블리어는 배우기도 까다롭고 프로그래밍 하기도 어렵다.

 

 

어셈블리어의 장단점

 

장점

- 프로그램의 실행 속도가 매우 빠르다. (기계에게 바로 명령을 내리기 때문에)

- 프로그램의 크기가 매우 작다. (최소한의 명령을 사용하기 때문에)

- 어떤 프로그램이라도 만들 수 있다. (하드웨어를 직접 제어 할 수 있기 때문에 어떠한 명령도 수행 할 수 있다.)


단점

- 배우기 힘들다. ( 고급언어인 cjava등에서 코딩을 할 때에는 하드웨어적 지식이 필요 없지만, 어셈블리어는 하드웨어 지식이 뛰어나야 하기 때문에)

- 큰 프로그램을 만들기 힘들다. (세밀한 제어가 필요하기 때문에 클 프로그램을 만들기에는 힘들다.)

- 프로그램을 짤 때 시간이 오래 걸리고 디버그도 어렵다. (에러를 찾을 때 직접 찾아야 해서 어렵다.)

 

어셈블리어의 용

 

1. 하드웨어 디바이스 드라이버

-드라이버라 불리는 하드웨어를 조절하는 프로그램을 만들 때 거의 대부분어셈블리어로 작성한다.

-하드웨어 제어는 드라이버 파일이 작고 실행 속도는 빨라야 함.

 

 

2. 일반 프로그램의 기능 최적화

-게임이나 프로그램을 만들 때 100% 고급언어를 이용한다면. 속도가 느려 제 역할을 하지 못한다.

-속도가 필요하거나 하드웨어를 정밀하게 제어 할 때에는 어셈블리어를 이용한다.

-셈블리 프로그램을 고급언어로 만든 프로그램과 링크시켜서 사용하는 것이 보편적이다.