Czytając wiki na temat C# dowiaduje się, że > program napisany w tym języku kompilowany jest do języka Common Intermediate Language (CIL) - czyli jest kompilowany do języka najniższego poziomu, który jest "czytany" przez środowisko uruchomieniowe. Zastanawiam się, czemu programiści .neta nie piszą bezpośrednio w CIL? Tzn. abstrahując od tego, że z tego co widzę jest on dużo bardziej zagmatwany itp. Czyli można to ująć, że ten C# jest taką nakładką na CILa? Działa to podobnie do JAVy w której piszemy kod .java, który kompiluje się na kod bajtowy możliwy do odczytania przez JVM? Dobrze to rozumuje?
0
8
C#
static void Main(string[] args)
{
Console.WriteLine("Hello World");
}
IL
.assembly extern mscorlib
{
.publickeytoken = (B7 7A 5C 56 19 34 E0 89 )
.ver 4:0:0:0
}
.assembly HelloWorld
{
----lines omitted
}
.module HelloWorld.exe
.class private auto ansi beforefieldinit HelloWorld.Program
extends [mscorlib]System.Object
{
.method private hidebysig static void Main(string[] args) cil managed
{
.entrypoint
.maxstack 8
IL_0000: nop
IL_0001: ldstr "Hello World"
IL_0006: call void [mscorlib]System.Console::WriteLine(string)
IL_000b: nop
IL_000c: 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
}
}
Też się właśnie nad tym zastanawiam.
4
Prawdopodobnie dlatego, że mają życie i ciekawsze rzeczy do roboty. Programowanie w CIL , czy w bajtcodzie, czy w assemblerze wymaga babrania się z wieloma bzdurami, które kompilator po prostu szybciej oblicza/układa. Mało to twórcze i rzadko kiedy przydatne.
0
A powstało coś łatwiejsze od C# i Javy? Tylko nie piszcie, że Scala.
1
Wesoły Laluś napisał(a):
A powstało coś łatwiejsze od C# i Javy? Tylko nie piszcie, że Scala.
Logo