본문 바로가기
프로그래밍

컴파일이란??

by 지나팩 2021. 4. 5.

작성한 c언어를 비롯한 프로그래밍 언어를 컴퓨터가 이해할 수 있는 기계어로 변환하는 것을 말합니다. 예를들어 한국어를 외국인이 알아들을 수 있게 번역을 한다고 생각하시면 될 것 같습니다. 이러한 변환은 컴파일러라는 녀석에 의해 변환이 되는데 각 언어마다 다양한 컴파일러가 존재합니다.

 

C#을 예로들어 설명해보자면, 먼저 C#으로 작성된 소스 코드를 C#언어 컴파일러로 컴파일을 하게 됩니다. 이때 컴파일의 결과물로써 exe파일과 dll파일이 생성됩니다. 흔히 이 생생된 파일을 어셈블리(Assembly)라고 칭합니다. 이 파일안엔 코드 이외에 자신을 설명하는 메타데이터, 메니페스트 정보가 포함됩니다. 그리고 MSIL이라는 형태를 지니고 있는데 이는 컴퓨터가 해석 가능한 원시코드(native code)가 되기 전 중간 언어입니다. 여기서 작성한 소스코드가 변환되며 컴파일 과정은 끝이 나게됩니다. 그 이후 컴퓨터 메모리에 로드되며 메모리에 로드된 어셈블리를 컴퓨터가 이해할 수 있도록 JIT컴파일러에 의해 원시코드로 변환되어 프로그램이 샐행되게 됩니다.

댓글