- Today
- Total
Notice
Recent Posts
Recent Comments
Link
250x250
프로그래밍 농장
about " .NET " 본문
728x90
마이크로소프트에서 개발한 Windows 프로그램 개발 및 실행 환경(프레임워크). 원래는 클로즈드 소스로 개발되던 프레임워크 였으나 현재는 닷넷 재단이 관리하는 오픈소스 프로젝트이며 이와는 별도로 오픈소스화 이전부터 오픈소스 프로젝트 MONO또한 있다.
.NET 프레임워크를 사용하는 언어들로 작성된 소스 코드는 각 언어에 맞는 컴파일러[5]를 거쳐 .NET CLR용 중간 코드인 CIL(Common Intermediate Language)로 컴파일된 후 .exe 파일로 래핑(wrapping)된다.[6] 그리고 .NET CLR은 이 파일을 JIT 컴파일 방식으로 읽어들여 기계어 번역을 수행한다. CIL은 .NET CLR이 설치된 곳이라면 어디서든 컴파일이 가능하다.
예로 들어서 Hello World를 출력하는 C# 코드가
이라면 컴파일 시 바뀌는 CIL 코드는
예로 들어서 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
'IT 관련 정보' 카테고리의 다른 글
On-premise (온프레미스) (0) | 2022.05.23 |
---|---|
Ethereum Virtual Machine (EVM) (0) | 2022.05.17 |
What is DApp(Decentralized Application) ? (0) | 2022.03.08 |
blockchain, metaverse, nft . . 에 대해 잘 정리된 영상 (0) | 2022.02.23 |
[Git] github 사용 중, fatal: 'origin' does not appear to be a git repository fatal: Could not read from remote repository. 에러 해결법 (0) | 2022.02.18 |