공통 언어 런타임

공통 언어 런타임(Common Language Runtime, CLR)은 마이크로소프트 닷넷 이니셔티브의 가상 머신 구성 요소이다. 프로그램 코드를 위한 실행 환경을 정의하는 마이크로소프트의 공통 언어 기반 (CLI) 표준의 기능이다. 공통 언어 런타임은 공통 중간 언어(CIL, 이전에는 MSIL로 알려져 있었음)라고 불리는 바이트코드의 형태를 실행한다.

공통 언어 런타임을 사용하는 개발자들은 C#이나 VB 닷넷과 같은 언어로 프로그래밍하며, 해당 언어의 컴파일러가 소스 코드를 공통 중간 언어 코드로 변환한다. 일반적으로 런타임에 공통 언어 런타임의 JIT 컴파일러가 공통 중간 언어 코드를 운영 체제의 네이티브 코드로 변환한다. 하지만 마이크로소프트 닷넷 프레임워크에 포함된 NGen 같은 AOT 컴파일러를 사용하면 중간 언어 코드를 타겟 머신에서 실행 전에 네이티브 코드로 컴파일해 둘 수도 있다. 이 경우 JIT 컴파일로 인한 추가 CPU/메모리 부담을 없애고, 컴파일된 기계어를 여러 프로세스에서 공유할 수 있으며, 애플리케이션 시작 시간을 단축하는 장점은 있으나 컴파일한 코드의 크기가 크고 실행 시간 정보를 이용한 최적화가 불가능해 오래 실행되는 서버 프로그램에서 기대할 수 있는 추가적인 성능 향상을 꾀할 수 없다.

마이크로소프트의 닷넷 프레임워크 구현이 아닌 다른 공통 언어 기반의 몇몇 구현(예: 마이크로소프트의 공유 소스 CLI 구현이나 모노)은 윈도가 아닌 운영 체제에서 실행되는 반면, 마이크로소프트의 닷넷 프레임워크 구현은 마이크로소프트 윈도 운영 체제에서만 동작한다.

공통 언어 런타임의 가상 머신은 프로그래머들이 CPU의 자세한 부분에까지 신경 쓰지 않아도 되게끔 해 주며, 다음과 같은 다른 중요한 서비스도 제공한다.
 메모리 관리
 스레드 관리
 예외 처리
 쓰레기 수집
 보안

참조

같이 보기 
 닷넷 프레임워크
 공통 언어 기반
 공통 중간 언어
 패럿 가상 머신
 자바 가상 머신
 포터블 닷넷
 모노
 메타데이터
 런타임
 공통 형 체계
 가상 머신
 C++/CLI
 POCO

외부 링크 
 공통 언어 런타임 살펴 보기 (마이크로소프트 MSDN)
 표준 ECMA-335, 공통 언어 기반 (CLI) ECMA International. 2007년 8월 17일에 확인.

라이브러리
가상 머신
닷넷 프레임워크