본문 바로가기

프로그래밍 공부방/C 프로그래밍 방

C Programming - 1.2 컴파일러

소프트웨어를 작성하기 위해 사용하는 언어를 프로그래밍 언어라고 한다. 프로그래밍 언어는 크게 기계어(machine language), 어셈블리 언어(assembly language), 고급 언어(high-level language)로 구분된다.

기계어는 0과 1을 축약한 16진수로 표현되기 때문에 인간이 알아보기 무척 어려울뿐더러 프로세세의 종류에 따라 코드의 의미가 다르게 해석되기 때문에 호환이 되지 않는다. 어셈블리 언어는 명령어와 심볼을 사용하여 기계어보다는 이해하기가 다소 수월하지만 고급언어에 비할 정도는 아니다. 이러한 언어들은 하드웨어의 동작과 기능에 맞춰 프로그램 코드를 작성해야하는 단점이 있다.

반면에 고급언어로 작성된 프로그램은 인간이 알아보기 친숙하기 때문에 배우기 쉬우며 컴퓨터의 기종에 관계없이 작성해도 무방하다, 하지만 이 자체를 그대로 메모리에 넣게 되면 CPU가 읽고 해석할 수 없다. 따라서 인간의 언어에 가깝게 표현된 프로그램 코드를 기계어로 바꿔줘야 한다. 이러한 번역기능을 수행하는 프로그램을 컴파일러(compiler)라고 한다. 대표적으로 gcc, Visual C++, Borland C++ 등이 있으며 구현에서 약간씩의 차이가 존재하나 큰 차이는 없다.