- CIL(Common Intermediate Language, 공통 중간 언어)
마이크로소프트 공통 중간 언어로 바이트코드로 이루어져있다.
해당 CIL은 자바와 마찬가지로 가상머신(닷넷)에 의해 실행된다.
C# 외에도 visual basic 등을 컴파일하여 CIL로 만들 수 있다.
이는 어느 운영체제에서도 실행하기 위한 자바의 철학과 같다.
- CLR(Common Language Runtime)
실행환경 전반을 관리하는 핵심 엔진으로 자바의 JVM과 같은 마이크로소프트에서 제공하는 가상머신의 구성요소 중 하나이다. CLR은 운영체제가 이해할 수 있는 코드로 변환해주는 역할을 한다.
- JIT Compiler(Just-in-time complation)
프로그램을 실제 실행하는 시점에 기계어로 변역하는 시점에 기계어로 번역하는 컴파일 기법이다.
이 기법은 인터프리터 방식처럼 CIL을 읽으며 해당 기능에 대응하는 기계어 코드를 생성하면서 그 코드를 캐싱하여, 같은 함수가 여러 번 불릴 때 매법 기계어 코드를 생성하는 것을 방지한다.
- AOT(ahead-of-time compile)
JIT Compile이 런타임에 CIL을 기계어로 변경을 했다면 AOT는 런타임이 아닌 미리 CIL을 기계어로 변경하는 방식을 의미한다.
Unity는 JIT Compile 방식와 AOT Compile 방식을 모두 지원한다.