CLR이란?
공용 언어 런타임(Common Language Runtime)의 약자로, 다른 프로그래밍 언어들 사이에서 공동으로 사용 할 수 있는 실행환경(Runtime)을 말한다.
CLR의 핵심 기능은 메모리관리,어셈블리 로딩, 보안, 예외 처리, 스레드 동기화, 등이 있는데 이런 요소들을 CLR을 지원한다면 제약없이 자유롭게 사용할 수 있다.
CLR을 지원하는 언어라면, 실행 시점에서 오류가 발생했을 시 예외 처리를 통하여 오류 발생 사실을 알 수 있다.
CLR은 스레드 프로그래밍 기능을 제공하기 때문에 CLR을 지원하는 언어는 자유롭게 스레드를 만들수 있다.
MS는 CLR과 호환되는 언어의 컴파일러를 다수 만들었는데, C++,C#,VB,F#, IL어셈블러 등이 있다.
물론 다른 회사들도 CLR을 지원하는 컴파일러들을 만들었다.
CLR의 컴파일 과정
C# 소스 코드 → C# 컴파일러 → 관리 모듈(IL, 메타데이터)
VB 소스 코드 → VB 컴파일러 → 관리 모듈(IL, 메타데이터)
IL 소스 코드 → IL 컴파일러 → 관리 모듈(IL, 메타데이터)
CLR을 지원하는 프로그래밍 언어라면 소스 코드 파일은 위와 같은 과정을 통해 컴파일 된다.
프로그래밍 언어로 제작한 솟 ㅡ 코드를 해당하는 컴파일러에서 문법 점검과 소스코드 분석을 통해 최종적으로는 관리모듈(Managed Module)을 결과물로 얻을 수 있다.
참조 : [CLR/C#] CLR의 실행 모델 (1) — RYULAB
[CLR/C#] CLR의 실행 모델 (1)
제프리 리처의 CLR via C#(저자, 제프리 리처) COM → Component Object Model : MS의 SW 컴포넌트 기술로 오브젝트 기반의 컴포넌트 아키텍처를 제공한다. CLR → Common Language Runtime 1장 목표 .Net Framework 설계
taeyeokim.tistory.com
'IT > 학습' 카테고리의 다른 글
main 함수의 인자 값 (0) | 2024.11.29 |
---|---|
readonly와 const의 차이 (0) | 2024.11.26 |
c++과 c#의 컴파일 과정 차이 (0) | 2024.11.26 |
DividedByZero ? 흠.. (1) | 2024.11.26 |
실수의 부정확함 (0) | 2024.11.26 |