컴퓨터 시스템은 기계어를 사용하지만 사람은 자연어를 사용한다.
기계어 (machine language) : 0과 1로 된 CPU 명령어 (instruction)
자연어 (natural language) : 사람이 일상적으로 쓰는 언어
컴퓨터가 처음 등장했을 때에는 사람이 직접 기계어로 코딩을 했다.
사람이 0과 1로 코딩을 하는 것은 매우 어려웠고 실수가 자주 발생할 수 밖에 없었다.
그래서 등장하게 된 것이 어셈블리어 (assembly language)이다.
어셈블리어 (assembly language) : 0과 1로 되어있는 기계어의 각 명령어에 대하여 알아보기 쉽도록 니모닉 기호(mnemonic symbol)를 정해두고 사용
ex) 1011000001100001 -> mov a1, 61h
어셈블리어로 작성한 프로그램은 어셈블러(assembler)라는 프로그램에 의해서 기계어로 변환된다.
어셈블리어는 컴퓨터 시스템의 CPU가 처리하는 명령어와 1 대 1로 대응되어 있기 때문에, 어셈블리어를 사용하려면 CPU의 내부 동작을 잘 이해해야 한다.
또한 CPU마다 사용하는 명령어 집합이 다르기 때문에 어셈블리어로 작성한 프로그램은 컴퓨터 시스템의 CPU가 달라지면 실행할 수 없다.
어셈블리어는 컴퓨터가 사용하는 기계어에 좀 더 가까운 언어인 반면에, 고급 언어(high level language)는 사람이 사용하는 자연어 쪽에 더 가까운 언어이다.
고급언어는 CPU가 처리하는 명령어와 1 대 1로 대응되는 언어가 아니기 때문에 고급 언어를 이용하면 특정 CPU에 의존적인 프로그램이 아니라 CPU에 대하여 독립적인(independent) 프로그램을 작성할 수 있다.
즉, 프로그래머는 프로그램이 실행될 CPU의 타입에 대하여 신경 쓰지 않고 프로그램을 작성할 수 있는 것이다.
(고급언어에는 C, C++, java, C# 등이 있다.)
고급 언어로 작성된 프로그램이 CPU 안에서 실행되기 위해서는 우선 기계어로 변환되어야 한다.
컴파일러(Compiler)는 고급언어로 작성된 프로그램을 번역해서 기계어로 된 프로그램을 만들어주는 일종의 번역기이다.
즉, 고급 언어로 작성한 프로그램이 컴파일러를 거치고 나면 특정 CPU에서만 실행 가능한 기계어 프로그램으로 바뀌는 것이다.
따라서 고급언어를 사용하려면 해당 언어의 컴파일러가 필요하다.
ex) C언어 -> C 컴파일러
★ 고급 언어로 프로그래밍을 할 때의 장점
· CPU 동작에 대하여 자세히 알 필요가 없다
· 기계어나 어셈블리어를 작성할 때에 비하여 프로그램을 개발하기 쉽다
· 유지 보수가 쉽다
'컴퓨터 공학' 카테고리의 다른 글
임베디드 시스템 (embedded system) 이란 (0) | 2024.04.30 |
---|---|
컴파일러 (Compiler) (0) | 2024.04.30 |
콘솔에서의 입력 처리 (0) | 2024.04.30 |
리틀 엔디안, 빅 엔디안 (0) | 2024.04.30 |