Teoretyczne działanie C# i Javy

0

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?

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

1 użytkowników online, w tym zalogowanych: 0, gości: 1