Notice
Recent Posts
Recent Comments
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Archives
Today
Total
관리 메뉴

충분히 쌓여가는

CLR(Common Language Runtime) 본문

이것이 c#이다/01 c#이란

CLR(Common Language Runtime)

빌드이너프 2024. 8. 29. 22:21

CLR
C#으로 만든 프로그램은 CLR 위에서 실행된다

CLR은 자바의 실행 환경인 JVM과 비슷한 역할을 한다

 

CLR은 .NET 라이브러리와 함께 OS 위에 설치된다

C# 컴파일러가 만들어낸 실행 파일은 하드웨어가 이해할 수 없는 코드로 구성되어 있기 때문에 실행할 수 없다

 

JIT 적시 컴파일

C# 컴파일러는 C# 소스 코드를 컴파일해서 IL(Intermediate Laguage)라는 중간 언어로 작성된 실행 파일을 만들어낸다

사용자가 이 파일을 실행시키면 CLR이 중간 코드를 읽어들여 다시 하드웨어가 이해할 수 있는 네이티브 코드로 컴파일한 후 실행시키고 이것을 JIT(Just In Time) 컴파일이라고 부른다

한 마디로 실행에 필요한 코드를 실행할 때마다 실시간으로 컴파일해서 실행한다는 뜻

 

두 번 컴파일 하는 이유

C#이 동작하는 환경이자 엔진인 CLR은 C#뿐만 아니라 다른 언어도 지원하도록 설계되었다

서로 다른 언어들이 만나기 위한 지점이 IL 이라는 중간 언어이고, 이 언어로 쓰인 코드를 CLR이 다시 자신이 설치된 플랫폼에 최적화해 컴파일한 후 실행한다

장점: 플랫폼에 최적화된 코드를 만들어 냄

단점: 실행 시 이루어지는 컴파일 비용의 부담

 

CLR의 기능

C#이나 기타 언어들을 동작시키는 환경 기능

프로그램의 예외가 발생했을 때 이를 처리하도록 도와주는 기능

언어 간 상속 지원

COM과의 상호 운영성 지원

자동 메모리 관리 등의 기능을 제공(Garbage Collection)

'이것이 c#이다 > 01 c#이란' 카테고리의 다른 글

static void Main(string[] args) {}  (0) 2024.08.29
전역 using  (0) 2024.08.29
주석  (0) 2024.08.26
class  (0) 2024.08.26
namespace  (0) 2024.08.26