본문 바로가기

카테고리 없음

컴파일러란 무엇일까?




오늘하루 새로운 일이 생깁니다. 기대 이상의 좋은 일들이 생깁니다. 


이번 시간에는 컴파일러에 대해 간단히 정리해 보고자 합니다.

그림을 먼저 보고 한번 이해해 보세요.

쉽게 이야기하면 C, C++, JAVA와 같이 고급언어로 작성한 것을 컴퓨터가 이해할 수 있는 언어(기계어)로 바꿔주는 프로그램이라고 생각하면 됩니다.

기계어는 CPU가 이해할 수 있는 컴퓨터 언어를 말합니다. 즉 컴퓨터가 이해할 수 있는 언어라 생각하면 됩니다.


그러면 직접 사용자가 기계어로 작성하면 낫지 않나요?


생각해 보니 그렇습니다. 컴파일러를 거치지 않고 사용자가 직접 작성합니다. 

그러면 더 간편하고 변경하는 작업도 없으니 더 좋을 것 같습니다.


하지만 그렇지가 않답니다. 기계어는 컴퓨터가 이해할 수 있는 언어입니다. 

따라서 컴퓨터는 이해하기 쉽지만 사람은 이해하기가 어렵답니다.


생각해 보세요. 한국 사람이 아랍어를 보면 무슨 말인지 잘 모르죠. 아랍어로 글을 쓰려면 많은 시간이 걸리죠.다시 말하면 사용자가 기계어로 작성하는 것은 어렵고 불편하다.

 

그렇다면 이때 우리가 사용하는게 뭐였죠. 저는 구글 번역기 같은 툴을 써요.

그러면 보면 구글 번역기도 하나의 컴파일러 기능을 가져다고 생각하면 되나요?

물론이죠. 역시 이해가 빠르시군요. ^^


그래서 시대가 흐르면서 사용자 입장에서 작성하기 편한 컴퓨터 언어가 하나씩 등장하게 되었답니다.

어셈블러, C, C++, C#, JAVA, Objective-C등 점점 시간이 흘러가면서 사람들이 작성하기 편하고 

배우기 쉬운 언어들이 등장했어요.


그런데 이렇게 작성한 언어는 사용자들은 이해할 수 있지만 기계가(CPU)가 알아듣도록 해야할 필요가 있겠죠.

고급언어를 기계어로 바꾸어 CPU가 이해할 수 있게 하는 역할이 컴파일러의 역할입니다. 


이해하셨어요? ^^

짧게 정리해 보았습니다. 도움이 되기를 바랍니다. 

오늘도 화이팅하세요.