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들은 닷넷프레임웤이 설치된 어떤 환경에서도 실행이 가능하게됨
- 즉, CLR은 실행을 하고자 하는 환경에 최적화된 컴파일 코드를 만들고, Native 코드를 생성하여 실행할 수 있게 도와주는 역할
- 하지만, C, Cpp 보다 컴파일에 대한 시간적 비용이 많이 발생
Reference
Link
- Native Code : 2021.04.19 - [etc.] - Native Code와 Managed Code
'programing > dot net' 카테고리의 다른 글
Assembly 정보 얻기 (0) | 2021.05.11 |
---|---|
Application Domain #4 - Assembly Reload (0) | 2021.05.06 |
Application Domain #3 - Shadow Copy (0) | 2021.04.19 |
Application Domain #2 - AppDomain 사용 (0) | 2021.04.19 |
Application Domain #1 - Application Domain 이란? (0) | 2021.04.19 |