CIL(공통 중간 언어)과 CLR(공통 언어 런타임)

2021. 4. 19. 11:27

CIL(Common Intermediate Language, 공통 중간 언어)

  • 닷넷 프레임워크 에서 실행되는 언어
  • 닷넷 프레임워크 언어로 개발된 프로그램 코드는 컴파일 시 바이너리 형태로 CIL이라 불리는 파일로 작성됨

 

 

CRL(Common Language Runtime, 공통 언어 런타임)

  • 마이크로소프트에서 제공하는 가상 머신의 구성요소
  • Java의 JVM(Java Virtual Machine)의 닷넷 버전 정도로 생각하면 편함
  • CLR(공통 언어 런타임)은 CIL(공통 중간 언어)코드를 읽어들여 OS가 이해할 수 있는 *Native Code로 변환 하는 역할

 

 

CLI, CRL은 왜 사용하는가?

  • Java의 경우를 생각해보면, Java는 컴파일된 바이트코드는 *JVM만 실행이 가능하다면 OS에 의존적이지 않다는 장점이 있어 큰 인기를 끎
  • 하지만 닷넷 프레임웤의 C, Cpp과 같은 언어로 개발된 코드는 개발환경(OS)에 따라 실행환경에 영향을 미치는 경향이 있음
  • 이러한 문제점을 보완하기 위하여 닷넷프레임웤은 가상머신을 추가하였고, 이로 인해 Cs뿐 아니라 다른 언어로 개발된 IL들은 닷넷프레임웤이 설치된 어떤 환경에서도 실행이 가능하게됨

 

출처 : https://guslabview.tistory.com/185

 

 

  • 즉, CLR은 실행을 하고자 하는 환경에 최적화된 컴파일 코드를 만들고, Native 코드를 생성하여 실행할 수 있게 도와주는 역할
  • 하지만, C, Cpp 보다 컴파일에 대한 시간적 비용이 많이 발생

 

 

 

 

 

 

 

 

 

 

 

 


Reference

 - guslabview.tistory.com/185

 

[.NET] C# CLR(공통 언어 런타임), CIL(공통 중간언어)

CLR(Common Language Runtime, 공통 언어 런타임)은 마이크로 소프트 이니셔티브에서 제공하는 가상 머신의 구성요소입니다. .NEt Framework 언어로 개발된 프로그램 코드는 CIL로 알려진 공통 중간 언어(Commo

guslabview.tistory.com

 

 

Link

- Native Code : 2021.04.19 - [etc.] - Native Code와 Managed Code

 

Native Code와 Managed Code

Reference  - ssaturn.tistory.com/99 Managed Code vs Native Code의 차이 Native code는 때로 Unmanaged code라고 불립니다. 그러니까 관리되는 코드와 관리되지 않는 코드라고 해야겠네요. 하지만 'Managed co..

developer-kus.tistory.com

 

BELATED ARTICLES

more