다음을 통해 공유


MSIL로 컴파일

업데이트: 2007년 11월

관리 코드로 컴파일할 경우 컴파일러는 소스 코드를 MSIL(Microsoft Intermediate Language)로 변환합니다. MSIL은 효율적으로 네이티브 코드로 변환될 수 있는 CPU 독립 명령 집합입니다. MSIL에는 산술 및 논리 연산, 제어 흐름, 직접 메모리 액세스, 예외 처리 및 기타 작업에 대한 명령 뿐만 아니라 로딩, 저장, 초기화 및 개체의 메서드 호출에 대한 명령도 포함됩니다. 코드를 실행하려면 대개는 JIT(Just-In-Time) 컴파일러를 사용하여 MSIL을 CPU 고유 코드로 변환해야 합니다. 공용 언어 런타임에서는 자신이 지원하는 모든 컴퓨터 아키텍처에 대해 하나 이상의 JIT 컴파일러를 제공하므로, 같은 MSIL 집합이 지원되는 모든 아키텍처에서 JIT로 컴파일 및 실행될 수 있습니다.

컴파일러에서 MSIL을 생성하면 메타데이터도 생성됩니다. 메타데이터는 모든 형식의 정의, 형식 멤버의 시그니처, 코드에서 참조하는 멤버, 실행 시 런타임에서 사용하는 기타 데이터를 포함하여 코드에 있는 형식을 설명합니다. MSIL과 메타데이터는 PE 파일에 포함되어 있습니다. 이 파일은 게시된 Microsoft PE와 실행 가능 콘텐츠에 사용해왔던 COFF(Common Object File Format)를 확장하며 이를 기반으로 합니다. 메타데이터 뿐만 아니라 MSIL이나 네이티브 코드를 수용하는 이 파일 형식을 사용하면 운영 체제에서 공용 언어 런타임 이미지를 인식할 수 있습니다. 파일에 MSIL과 함께 메타데이터가 있으면 코드가 스스로 설명을 할 수 있습니다. 이것은 형식 라이브러리나 IDL(인터페이스 정의 언어)이 필요 없음을 의미합니다. 런타임은 실행 중에 필요에 따라 파일로부터 메타데이터를 찾아 추출합니다.

참고 항목

개념

관리되는 실행 프로세스

참조

MSIL 어셈블러(Ilasm.exe)

기타 리소스

메타데이터 및 자동 기술 구성 요소