본문 바로가기
컴퓨터/C#

[.NET] CLR(Common Language Runtime, 공통 언어 실행 환경)

by Luyin 2013. 6. 7.



  • CLR : Common Language Runtime(공통 언어 실행 환경)

CLR은 마이크로소프트가 Common Language Infrastructure (CLI) 표준을 토대로 구현한 것이며 .NET Framework에 있는 가상 머신 컴포넌트이다. .NET 환경에서 컴파일은 CLR 컴파일을 의미한다.


  • JIT (Just In Time) 컴파일 : 

실행에 필요한 코드를 실행할 때마다 실시간으로 네이티브 코드로 번역해서 사용한다.

.NET 컴파일러(== CLR 컴파일러)는 .NET 소스 코드를 읽어서 Intermediate Language라는 중간 언어로 된 파일을 만들어 냅니다.

사용자가 이 파일을 시작하면 JIT가 Intermediate Language를 읽어들여서 네이티브 코드(원시 기계어)로 변역한 뒤, 실행시킨다. 이 방식을 JIT(Just In Time) 컴파일이라고 부른다.

일단 JIT 컴파일이된 코드는 캐시에 저장된다. 응용 프로그램이 종료되면 컴파일된 코드는 시스템에서 제거된다. 전체 프로그램의 컴파일은 한번에 이루어지지 않고 필요한 순간에 필요한 코드 부분에 대해서만 컴파일 된다. 


또한 CLR은 C# 등 .NET언어를 동작시키는 기능 뿐만 아니라, 



  1. exception handling : 프로그램의 오류(예외)가 발생 했을 때, 이를 처리하도록 도와주는 기능도 있습니다.
  2. memory management : 가비지 컬렉션
  3. type safety : 

등 3가지 추가 서비스 기능을 제공한다.

댓글0