작성한 c언어를 비롯한 프로그래밍 언어를 컴퓨터가 이해할 수 있는 기계어로 변환하는 것을 말합니다. 예를들어 한국어를 외국인이 알아들을 수 있게 번역을 한다고 생각하시면 될 것 같습니다. 이러한 변환은 컴파일러라는 녀석에 의해 변환이 되는데 각 언어마다 다양한 컴파일러가 존재합니다.
C#을 예로들어 설명해보자면, 먼저 C#으로 작성된 소스 코드를 C#언어 컴파일러로 컴파일을 하게 됩니다. 이때 컴파일의 결과물로써 exe파일과 dll파일이 생성됩니다. 흔히 이 생생된 파일을 어셈블리(Assembly)라고 칭합니다. 이 파일안엔 코드 이외에 자신을 설명하는 메타데이터, 메니페스트 정보가 포함됩니다. 그리고 MSIL이라는 형태를 지니고 있는데 이는 컴퓨터가 해석 가능한 원시코드(native code)가 되기 전 중간 언어입니다. 여기서 작성한 소스코드가 변환되며 컴파일 과정은 끝이 나게됩니다. 그 이후 컴퓨터 메모리에 로드되며 메모리에 로드된 어셈블리를 컴퓨터가 이해할 수 있도록 JIT컴파일러에 의해 원시코드로 변환되어 프로그램이 샐행되게 됩니다.
'프로그래밍' 카테고리의 다른 글
프로그래밍 동기와 비동기 (0) | 2022.01.12 |
---|---|
비주얼 스튜디오의 프로젝와 솔루션?? Visual Studio Project & Solution?? (0) | 2022.01.05 |
프레임 워크란?? (0) | 2021.08.15 |
디버깅(디버그)이란 무엇인가?? (0) | 2021.07.13 |
절차 지향과 객체 지향 (0) | 2021.07.05 |
댓글