... | @@ -21,7 +21,7 @@ CLR는 두 가지 큰 기능이 있는데, 하나는 CIL를 JIT컴파일러를 |
... | @@ -21,7 +21,7 @@ CLR는 두 가지 큰 기능이 있는데, 하나는 CIL를 JIT컴파일러를 |
|
**7. Garbage Collector**
|
|
**7. Garbage Collector**
|
|
|
|
|
|
### **공통 중간 언어(CIL: Common Intermediate Language)**
|
|
### **공통 중간 언어(CIL: Common Intermediate Language)**
|
|
자바의 VM에서는 중간 언어를 특별히 바이트 코드(Byte Code)라고 한다. 이와 마찬가지로 닷넷의 CLR에서는 이를 CIL이라고 하며 보통은 줄여서 IL코드 또는 MSIL코드라고 한다. 이는 CPU에 독립적인 결과물로서 모든 닷넷 호환언어는 소스코드를 IL 코드로 컴파일하고 CLR이 실행될 때 IL코드를 CPU의 기계어로 최종 번역한다. IL코드에는 자체적인 프로그래밍 문법이 있으며 ILASM.EXE라는 전용 컴파일러도 있다. IL코드는 가상 머신에서 실행된다는 의미에서 일종의 기계어와 유사하다.
|
|
자바의 VM에서는 중간 언어를 특별히 바이트 코드(Byte Code)라고 한다. 이와 마찬가지로 닷넷의 CLR에서는 이를 CIL이라고 하며 보통은 줄여서 IL코드 또는 MSIL코드라고 한다. 이는 CPU에 독립적인 결과물로서 모든 닷넷 호환언어는 소스코드를 IL코드로 컴파일하고 CLR이 실행될 때 IL코드를 CPU의 기계어로 최종 번역한다. IL코드에는 자체적인 프로그래밍 문법이 있으며 ILASM.EXE라는 전용 컴파일러도 있다. IL코드는 가상 머신에서 실행된다는 의미에서 일종의 기계어와 유사하다.
|
|
|
|
|
|
### **공통 타입 시스템(CTS: Common Language Specification)**
|
|
### **공통 타입 시스템(CTS: Common Language Specification)**
|
|
닷넷 호환 언어가 지켜야 할 타입(Type)의 표준 규격을 정의한 것이 공용 타입 시스템이다. 예를 들어 CTS에서는 클래스의 상속을 하나만 받을 수 있도록 정의하고 있다. 따라서 직접 닷넷 호환 언어를 만든다면 클래스의 다중 상속을 지원하도록 만들 수는 없다. 즉, 닷넷 호환 언어는 CTS의 한계를 넘어서 구현할 수 없다.
|
|
닷넷 호환 언어가 지켜야 할 타입(Type)의 표준 규격을 정의한 것이 공용 타입 시스템이다. 예를 들어 CTS에서는 클래스의 상속을 하나만 받을 수 있도록 정의하고 있다. 따라서 직접 닷넷 호환 언어를 만든다면 클래스의 다중 상속을 지원하도록 만들 수는 없다. 즉, 닷넷 호환 언어는 CTS의 한계를 넘어서 구현할 수 없다.
|
... | | ... | |