프로그래밍 농장

about " .NET " 본문

IT 관련 정보

about " .NET "

Tennessee201 2022. 3. 11.
728x90

 

마이크로소프트에서 개발한 Windows 프로그램 개발 및 실행 환경(프레임워크). 원래는 클로즈드 소스로 개발되던 프레임워크 였으나 현재는 닷넷 재단이 관리하는 오픈소스 프로젝트이며 이와는 별도로 오픈소스화 이전부터 오픈소스 프로젝트 MONO또한 있다.


.NET 프레임워크를 사용하는 언어들로 작성된 소스 코드는 각 언어에 맞는 컴파일러[5]를 거쳐 .NET CLR용 중간 코드인 CIL(Common Intermediate Language)로 컴파일된 후 .exe 파일로 래핑(wrapping)된다.[6] 그리고 .NET CLR은 이 파일을 JIT 컴파일 방식으로 읽어들여 기계어 번역을 수행한다. CIL은 .NET CLR이 설치된 곳이라면 어디서든 컴파일이 가능하다.

예로 들어서 Hello World를 출력하는 C# 코드가
using System;

namespace HelloWorld
{
	public class Program
	{
		private static void Main(string[] args)
		{
			Console.WriteLine("Hello, World!\n");
			Console.ReadLine();
		}
	}
}

이라면 컴파일 시 바뀌는 CIL 코드는
.class public auto ansi beforefieldinit HelloWorld.Program
extends [mscorlib]System.Object
{
.method private hidebysig static
void Main (
string[] args
) cil managed
{
.maxstack 8
.entrypoint
IL_0000: ldstr "Hello, World!\n"
IL_0005: call void [mscorlib]System.Console::WriteLine(string)
IL_000A: call string [mscorlib]System.Console::ReadLine()
IL_000F: pop
IL_0010: ret
}
.method public hidebysig specialname rtspecialname
instance void .ctor () cil managed
{
.maxstack 8
IL_0000: ldarg.0
IL_0001: call instance void [mscorlib]System.Object::.ctor()
IL_0006: ret
}
}
이렇게 된다.
728x90