CLR (common language runtime) – 공통 언어 런타임
CLR은 마이크로소프트의 .NET 프레임웍의 일부로서, 지원되는 언어 중 어떤 하나로 작성된 프로그램이 공통의 객체지향형 클래스를 공유할 수 있도록 해주는 실행 관리 프로그램이다. CLR은 자바 언어로 컴파일된 프로그램을 실행시키기 위해 썬 마이크로시스템즈가 제공하는 자바 가상머신에 어느 정도 비교될만하다. 마이크로소프트는 자사의 CLR을 하나의 “관리 실행 환경”이라고 지칭한다. CLR용으로 컴파일된 프로그램은 반드시 해당 언어 고유의 실행 환경만을 고집하지 않으며, 윈도우2000이나 윈도우XP가 돌아가는 시스템이라면 어디서라도 실행될 수 있다. 비주얼 베이직, 비주얼 C++ 또는 C# 언어를 쓰는 프로그래머들이 자신들의 프로그램을 이식 가능 실행 파일 내에서 CIL이라는 중간 형태의 코드로 컴파일하고 나면, 이를 CLR을 통해 관리하고 실행시킬 수 있다. 프로그래머가 컴파일할 때 그에 관한 서술적 정보를 지정하면, 이 정보는 컴파일된 프로그램과 함께 메타데이터로서 저장된다. 컴파일된 프로그램 내에 저장된 메타데이터는, 사용된 언어의 종류와 버전, 그리고 그 프로그램에 필요한 클래스 라이브러리는 무엇인지 등에 관한 정보를 CLR에게 알려 준다. CLR은 한 언어로 작성된 클래스의 인스턴스가 다른 언어로 작성된 클래스의 메쏘드를 호출할 수 있게 해주며, 자투리 모으기와 예외 처리 및 디버깅 서비스 등도 제공한다.