컴퓨터는 전류의 '흐름'과 '흐르지 않음'으로 모든 연산을 수행한다. '흐름'을 1이라 놓고, '흐르지 않음'을 0이라 놓았을 때 컴퓨터가 수행하는 모든 연산은 0과 1만을 사용하는 2진수로 나타내어질 수 있게 된다. 하지만 원래 컴퓨터는 인간의 일을 대신 하기 위해 만들어 진 것으로서, 인간의 명령을 받아들여야 한다. 하지만 인간이 2진수로 명령을 내리기란 매우 힘든 작업이다.

'프로그램'이란, 컴퓨터에게 내리는 명령의 집합이다. 프로그램 역시 컴퓨터에게 명령을 내려야 하므로 2진수로 작성되어있다. 이를 Binary Code(이진 코드)라고 한다. 컴퓨터는 이러한 이진 코드만을 이해할 수 있으며, 따라서 인간은 이진 코드로 프로그램을 작성할 필요가 있다. 하지만 아까 말했듯이, 이진 코드는 인간이 이해하기가 매우 힘들기 때문에 이진 코드를 이용하여 프로그램을 작성하는 것은 불가능에 가깝다.

그렇게 해서 생겨난 것이 프로그래밍 언어이다. 프로그래밍 언어란, 이름에서 알 수 있듯이, 일종의 언어이다. 영어나 중국어, 일본어, 스페인어와 같이 분명히 언어의 일종이다. 그렇다면 과연 언제 쓰이는 언어일까? 프로그래밍 언어는 컴퓨터가 쓰는 언어는 아니다. 아까 말했다시피, 컴퓨터는 오직 이진 코드만을 이해할 수 있다. 이진 코드가 아닌 프로그래밍 언어는 컴퓨터는 이해하지 못한다. 하지만 프로그래밍 언어는 인간과 컴퓨터를 연결해주는 역할을 한다. 결과적으로는, 컴퓨터와 인간 모두 이 언어를 쓰게 되고, 의사소통이 가능해진다.

분명 컴퓨터는 프로그래밍 언어를 이해하지 못한다고 했다. 하지만 컴퓨터가 이 언어를 쓴다고 했다. 모순인 듯 하지만 답은 어렵지 않다. 중간에 번역을 해 주면 된다. 프로그래밍 언어에서 이진 코드로 번역을 해 주는 작업을 '컴파일'이라고 한다. 또한 컴파일을 수행해 주는 프로그램을 '컴파일러'라고 한다. 즉, 컴퓨터는 컴파일러라는 번역기의 도움을 받아 프로그래밍 언어를 이해할 수 있게 되는 것이다.

분명 프로그래밍 언어를 이진 코드로 번역해주는 번역기는 있다. 하지만 애석하게도 인간의 언어를 프로그래밍 언어로 번역시켜주는 번역기는 없다. 인간의 언어가 너무 고차원인 것일까. 따로 번역기를 가지고 있지 않은 우리 인간은 직접 프로그래밍 언어를 이용하여 프로그램을 작성해야 된다. 이와 같이 프로그래밍 언어를 이용하여 프로그램을 작성하는 사람들을 '프로그래머'라고 부른다.

요약하자면, 인간은 직접 이진 코드로 된 프로그램을 작성할 수 없기에 보다 쉬운 프로그래밍 언어로 프로그램을 작성한다. 이렇게 작성된 프로그램을 번역기인 컴파일러에게 넘겨주면 컴파일러는 프로그래밍 언어를 이진 코드로 번역하여준다. 이와 같이 컴파일러에 의해 최종 번역된 프로그램만을 컴퓨터는 이해할 수 있다. 또한 이렇게 프로그램을 작성하는 사람들을 프로그래머라 부른다.


2008년 1월 19일 이후 작성된 모든 글에 대해서 퍼가는 것을 금지합니다.
퍼가고자 하시는 분은 링크를 달아 주시기 바랍니다.
Posted by Harry

Trackback :: http://harrys.co.kr/blog/lab/trackback/2

댓글을 달아 주세요