728x90

고급 레벨 언어와 컴파일러

C와 같은 고수준의 언어는 여러 가지 방법으로 프로그램을 단순화시켰습니다.
    1. 명령을 수치 코드로 나타낼 필요가 없습니다.
    2. 사용하는 명령들이 사람들이 사용하는 언어에 더 가깝습니다.

CPU에 명령을 내릴 때 위와 같은 절차를 신경 쓸 필요 없이 추상적인 수준에서 원하는 것을 표현할 수 있습니다. 예를 들면, 두 수를 더하는 것을 다음과 같이 표현할 수 있습니다.

total = num1 + num2;
cs

이와 같은 코드는 어떤 일을 하는지 쉽게 예측할 수 있습니다. 하지만, 수치 코드로 적힌 기계어 코드는 무슨 일을 하는 코드인지 이해하기가 쉽지 않습니다.

하지만, 컴퓨터는 위와 같은 명령을 이해할 수 없습니다. 이것을 해결하기 위해 사용되는 것이 컴파일러(compiler)인데, 컴파일러는 고수준의 언어로 작성된 프로그램을 컴퓨터가 이해할 수 있는 기계어 명령으로 변환해주는 프로그램입니다. 컴파일러가 있어서 우리는 기계어 코드로 컴퓨터에 명령을 내리지 않아도 됩니다.

이렇게 컴파일러를 중간에 사용해서 번역해주는 방법은 또 다른 이점이 있습니다. 일반적으로, CPU의 종류가 다를 경우 서로 다른 기계어 명령을 사용해서 각각의 CPU마다 서로 다른 기계어 코드로 작성해야 합니다. 하지만, 컴파일러를 이용하면 각각의 기계어에 맞춰져서 컴파일하므로 프로그램을 작성할 때 고수준으로 한 번만 작성하면 컴파일러를 이용해서 다양한 버전의 기계어 프로그램을 얻을 수 있습니다.

컴파일러를 사용해서 얻는 이점

1. 기계어보다 배우기 쉽다.
2. 특정 CPU나 기계어 명령에 한정되지 않는다.
3. 기계어를 이용해서 프로그램을 작성하는 것보다 훨씬 효율적이다.

정리하면 C, C++, Java와 같은 고급 레벨의 언어는 추상적인 형태로 동작을 서술하므로 특정 CPU나 명령 집합에 제한되지 않으며, 기계어보다 배우기가 쉽고 사용하기도 훨씬 쉽다는 장점이 있습니다.

728x90
728x90