본문 바로가기

IT/학습

CLR(공용 언어 런타임)

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