## 닷넷 프레임워크
> 닷넷 프레임워크(.NET Framework)는 2002년에 마이크로소프트에서 발표한 응용 프로그램 개발 환경으로서 프로세스 가상 머신에 속한다.
>
> 닷넷 프레임워크를 기반으로 만들어진 응용 프로그램은 반드시 닷넷 프레임워크가 설치된 환경에서만 실행된다.
>
닷넷 프레임워크를 설치하면 가상 머신 역할을 하는 CLR(Common Language Runtime) 구성요소가 실행될 수 있는 환경이 윈도우 운영체제에 마련된다.
- CLR은 프로세스가 실행되면 메모리에 함께 적재돼 실행
- 내부적으로는 CLR 구성요소가 로드돼 실행되고, 그 CLR이 EXE / DLL에 함께 저장돼 있는 닷넷 코드를 실행
## C# 컴파일러
- C# 컴파일러는 소스코드를 IL(Intermediate Language)이라고 하는 중간 언어로 EXE / DLL 파일 내부에 생성
- CLR을 로드하는 코드를 자동으로 EXE 파일 내부에 생성
## 실행
1. 컴파일러에 의해 삽입된 CLR 로더 코드가 실행
2. CLR 로드 후 사용자의 중간 언어 코드를 실행
## 닷넷 호환 언어
- CLR에 의해 실행되는 중간 언어는 어느 하나의 프로그래밍 언어에 종속된 것은 아니다.
- 닷넷 호환 언어란 중간 언어로 번역하는 언어
- IL 코드의 결과물을 공유하기 때문에 상호 호출이 가능 (Ex : C# class -> F# 사용)
- 닷넷 호환 언어 : C#, Visual Basic .NET, F#, C++/CLI, COBOL, Lisp, Python, PHP, Ruby
## 공통 중간 언어 (CIL : Common Intermediate Language)
- JVM에서 중간 언어 : 바이트 코드
- CLR에서 중간 언어 : CIL (IL, MSIL) 코드
- 모든 닷넷 호환 언어는 소스코드를 IL 코드로 컴파일, CLR이 실행될 때 IL 코드를 CPU의 기계어로 최종 번역
- IL 코드에는 자체적인 프로그래밍 언어 문법이 있고 ILASM.EXE라는 전용 컴파일러도 있다.
## 공용 타입 시스템 (CTS : Common Type System)
- 닷넷 호환 언어가 지켜야 할 타입의 표준 규격을 정의 한 것
-
-----
출처 : C# 6.0 프로그래밍 기본 문법부터 실전 예제까지 (정성태 지음)
본 내용은 책의 내용을 인용하여 요약한 것입니다.
저작권 문제시 해당 글은 삭제 조치하겠습니다.