본문 바로가기
[2]SW Development Note/[2-1.2]C#

CLR : Common Language Runtime(공통 언어 실행 환경)

by 오늘도 빛나는 너에게 2021. 10. 7.
728x90
  • CLR : Common Language Runtime(공통 언어 실행 환경)

CLR은 마이크로소프트가 Common Language Infrastructure (CLI) 표준을 토대로 구현한 것이며 .NET Framework에 있는 가상 머신 컴포넌트이다. .NET 환경에서 컴파일은 CLR 컴파일을 의미한다.

  • JIT (Just In Time) 컴파일 :

실행에 필요한 코드를 실행할 때마다 실시간으로 네이티브 코드로 번역해서 사용한다.

.NET 컴파일러(== CLR 컴파일러)는 .NET 소스 코드를 읽어서 Intermediate Language라는 중간 언어로 된 파일을 만들어 낸다.

사용자가 이 파일을 시작하면 JIT가 Intermediate Language를 읽어들여서 네이티브 코드(원시 기계어)로 변역한 뒤, 실행시킨다. 이 방식을 JIT(Just In Time) 컴파일이라고 부른다.

일단 JIT 컴파일이된 코드는 캐시에 저장된다. 응용 프로그램이 종료되면 컴파일된 코드는 시스템에서 제거된다. 전체 프로그램의 컴파일은 한번에 이루어지지 않고 필요한 순간에 필요한 코드 부분에 대해서만 컴파일 된다

 

 

CLR의 핵심 기능들은 CLR을 지원하는 어떤한 프로그래밍 언어라도 제약 없이 자유롭게 사용 할수있다

예를 들어 실행 시점에서 발생한 오류를 보고 하기 위하여 예외를 사용하면, 공용 언어 런타임을 지원하는

프로그램 언어라면 예외처리를 통하여 오류가 발생했다는 사실을 알수 있다

공용언어 런타임을 지원하는 어떠한 프로그래밍 언어에서든 스레드를 만들수 있다.

그렇다면 선택한 프로그래밍 언어를 다른 프로그래밍 언어와 함께 쓸수 있다는 것이 왜 좋은것일까?

컴파일러를 프로그래밍 언어의 문법에 따라 코드의 옳고 그름을 판단해주는 도구라고 생각한다.

서로 다른 프로그래밍 언어를 통해 서 대채로운 문법을 사용하여 개발하는 것은 의외로 큰 이점이 있기 때문이다.

 

 

 

728x90

댓글