Posted
Filed under 공부한 것들/C/C++

저급언어(Low-Level Language)와 고급언어(High-Level Language)

저급언어(Low-Level Language)

저급언어는 컴퓨터 하드웨어와 더 가까운 언어로서 기계어(Machine Language)와 어셈블리 언어(Assembly Language)가 있음.
전류가 흐르는 상태인 ON은 숫자 1, 전류가 흐르지 않는 상태인 OFF는 숫자 0으로 표시, 이렇게 0,1로만 나타내는 언어를 기계어(Machine Language)라고 함.
컴퓨터는 0,1로만 인식, 기계어를 사람이 알 수 있는 형식으로 만들 필요가 있었는데 이렇게 기계어를 문자적으로 표현 한 것이 바로 어셈블리어(Assembly Language)

어셈블리어는 숫자 0, 1로 이루어진 명령어를 ADD, MOV와 같은 문자로 표현한 언어. 어셈블리어를 컴퓨터가 알 수 있는 기계어로 변역해 주어야 하는 과정이 필요한데, 이러한 과정을 어셈블(Assemble)한다 라고 하고 어셈블리어를 기계어로 번역하는 주체는 어셈블러(Assembler)라고 하는 언어 번역기가 담당.

고급언어(High-Level Language)

고급언어는 저급언어와 반대로 사용자와 더 가까운 언어. (기계어, 어셈블리어 이외의 모든 언어가 고급언어에 속함)
고급언어도 저급언어와 마찬가지로 컴퓨터가 직접 인식하지 못하여 기계어로 번역을 번역을 해주어야 하는데 고급언어에서는 이러한 과정을 컴파일(Compile)한다라고 하고 기계어로 번역해주는 주체를 컴파일러(Complier)라고 함.

저급언어와 고급언어의 가장 큰 차이점은 그 언어가 사용자 위주의 언어냐, 하드웨어 위주의 언어냐에 따라 다름.
저급언어는 하드웨어와 밀접한 관계가 있기 때문에 하드웨어를 직접 제어할 수 있는 반면에 전문가가 아닌 이상은 다루기가 어려움.
반면, 고급언어는 사용자와 밀접한 관계가 있기 때문에 일반 사용자가 다루기가 쉬운 반면 하드웨어를 직접 제어해야 할 경우엔 한계가 있음.

2007/05/13 16:29 2007/05/13 16:29
Posted
Filed under 공부한 것들/C/C++
C언어의 특징

C언어는 사용자 중심의 고급언어(High-Level Language)이면서 하드웨어를 직접 제어할 수 있는 저급언어(Low-Level Language)의 특징을 모두 가지고 있음

C언어는 이식성이 뛰어남.
이식성이라는 말은 어느 한 컴퓨터 시스템에서만 사용되는 것이 아니라 다양한 운영체제와 다양한 하드웨어에서도 큰 수정없이 사용할 수 있다는 것.
C프로그램이 약간의 수정만 거치게 되면 도스나 윈도우에서도 사용할 수 있음.

C언어는 다양한 제어구조를 지원
if-else, switch, whie, do-whie, for, break 등과 같은 제어문은 제공, 프로그램을 좀더 구조적으로 만들 수 있음.

C언어는 함수(function)의 언어
함수라는 것은 '어떤 기능을 수행하는 프로그램 단위', C언어는 기본적인 데이터 타입, 구조체, 유니온 그리고 포인터 값을 반환하는 다양한 함수들이 있음.(C언어에서 제공하는 함수는 수백개가 넘기 때문에 어떤 곳에 어떠한 함수를 사용하느냐가 중요한 문제가 될 수 있음)

C언어는 auto, static, external과 같은 몇 가지 유용한 기억 부류를 제공
즉, 지역 변수냐, 전역변수냐에 따라서 프로그램의 효율을 극대화,

C언어는 프로젝트 파일이라는 것을 제공,
큰 덩어리의 프로그램을 한 파일에서 한꺼번에 컴파일하는 것이 아니라 모듈별로 각각 분리하여 저장하여 컴파일을 거쳐서 최종적으로는 하나의 실행파일을 만들 수 있음.
2007/05/13 16:17 2007/05/13 16:17