본문 바로가기
프로그래밍/C

[C언어] 컴파일, 그리고 컴파일러

by 알용 2012. 4. 5.
반응형

 

머리말

프로그래밍을 배우지 않은 사람이라도 프로그래밍에 대해 검색을 한번이라도 해보았다면
제목과 같이 컴파일, 또는 컴파일러라는 용어를 본 적이 있을 것이다.
이번 강좌에서는 대부분의, 아니 어쩌면 모든 프로그래밍 언어에서 거치게 되는 컴파일이라는 과정에 대해 알아본다.
또한 컴파일을 할 수 있도록 도와주는 컴파일러도 소개할 것이다.


- 컴파일

컴파일(Compile)의 사전적 의미는 편집하다, 명령어를 번역하다 등의 의미가 있는데

프로그래머 세계에서는 후자의 의미가 더 뚜렷하게 나타난다.

프로그래머들은 각 프로그래밍 언어마다 정해진 문법의 틀에 맞게 코딩을 하고 프로그램을 만든다.

컴파일이란 과정을 거치기 전, 작성한 코드들은 해당 프로그래밍 언어의 문법을 숙지하고 있는 프로그래머만 알 수 있다.

반대로 말하면 컴파일이라는 과정을 거치지 않고서는 컴퓨터가 프로그래밍 언어를 이해하지 못한다는 뜻이 된다.

프로그래머가 작성한 코드를 대상으로 컴파일을 하게 되면 아래 소개할 컴파일러라는 도구가

프로그래밍 언어로 작성된 코드들을 컴퓨터가 이해할 수 있는 기계어로 번역해준다.

기계어의 개념을 알기 위해서는 컴퓨터의 동작 원리에 대해 설명해야 하는데 간단하게 설명하겠다.

컴퓨터는 전류의 흐름과 끊김을 구별하여 명령을 수행하게 되는데 숫자 0이 전기의 끊김, 1이 전기의 흐름을 나타낸다.

따라서 기계어란 숫자 0과 1을 사용한 이진수의 조합으로써 컴퓨터가 이해할 수 있는 언어이다.

쓸데없는 설명이 조금 길지 않았나 싶은데 컴파일을 한줄로 설명하면 다음과 같다.

컴파일: 프로그래밍 언어로 작성된 코드를 컴퓨터가 이해할 수 있는 기계어로 번역하는 과정 또는 행위

코드를 컴파일하게 되면 프로그래머가 사용하는 프로그래밍 언어가 컴퓨터가 알아들을 수 있는 기계어로 번역된다.


- 컴파일러

그렇다면 컴파일러란 무엇이냐, 보통 동사뒤에 er(e로 끝난다면 r)이 붙으면 "~해주는 사람 또는 도구" 를 의미하는데

Compile에 r 이 붙게 되어 컴파일 해주는 도구 라는 뜻이 된다.

컴파일러는 프로그래밍 언어에 따라 그 종류가 나뉘게 되고, 운영체제에 따라서도 나뉘게 된다.

컴파일러의 종류를 몇가지 나열하자면

----------------------------------------------------------------------------------------------------------
Microsoft Visual Studio    GCC    DEV C++    TURBO C
----------------------------------------------------------------------------------------------------------

등이 있는데 내가 현재 사용하고 있고 블로그에 소개할 컴파일러는 Microsoft Visual Studio 6.0 이다.

다양한 컴파일러 중에서 Microsoft 사의 Visual Studio 를 선택한 이유는,

보통 C언어를 배우고 나서 C++ 을 배우거나 API 를 배우는 것이 보통인데 C++ 을 배우던 API 를 배우던

Visual Studio 에서 두 가지 모두 지원한다는 점 때문이다.

또한, C, C++, Win32 Api, MFC 등 Visual Studio 에서는 여러 분야의 프로그래밍이 가능하고 인터페이스가 편리하다.

다만 VS 6.0 버전이 너무 오래되어(아마 Windows 2000 릴리즈 됐을 때 출시됐을 겁니다)

많은 프로그래머들로부터 '유물' 취급을 받고 있는데 내가 6.0, 2008, 2010 버전 모두 사용해봤지만

VS 6.0 버전이 학습하기에 전혀 무리가 없다는 결론을 내렸다.

따라서 VS 6.0 으로 동아리 후배들을 가르칠 예정이고 강좌에도 VS 6.0 을 소개할 예정이다.







 

반응형