Nativer Compiler für C#?



  • Hi
    Weiss jemand von einem geplanten oder bereits existierenden nativen Compiler für C#?
    Ich meine damit NICHT .NET -> (Pseudo)nativ Compiler, sondern einen richtigen übersetzer der Sprache C# zu Maschinencode (NICHT .NET).

    Mir gefällt die Sprache, ich will aber nicht .NET nutzen..

    Gruss
    Elvis



  • Also C#, managed C++, und VB.net werden erstmal nach MSIL übersetzt und danach zu Maschinencode.
    Du kannst ihn dir wie folgt ansehen:
    Als Release kompilieren, und während dem laufen pausieren, dann wirst du gefragt ob du die "disassembly" anzeigen willst und das sieht dann in etwa so aus:

    00000000  sub         esp,0Ch 
    00000003  push        edi  
    00000004  push        esi  
    00000005  push        ebx  
    00000006  push        ebp  
    00000007  xor         eax,eax 
    00000009  mov         dword ptr [esp+18h],eax 
    0000000d  mov         ebp,ecx 
    0000000f  mov         esi,edx 
    00000011  mov         dword ptr [esp+10h],0 
    00000019  mov         eax,dword ptr [esi+4] 
    0000001c  sub         eax,dword ptr [esp+2Ch] 
    00000020  cmp         eax,dword ptr [esp+28h] 
    00000024  jge         00000055 
    00000026  mov         eax,dword ptr ds:[79CB807Ch] 
    0000002c  mov         ecx,dword ptr [eax] 
    0000002e  call        dword ptr ds:[79C00968h] 
    00000034  mov         ebx,eax 
    00000036  mov         ecx,79C538E4h 
    0000003b  call        dword ptr ds:[79CC0108h] 
    00000041  mov         edi,eax 
    ....
    

    Du siehst. Assembler-Code. Ich könnte mir auch nicht vorstellen wie das sonst laufen sollte, wenn das nicht in Maschinencode übersetzt würde.

    Code-Hacker



  • Ja, aber dummerweise greift auch dieser Assi-Code auf .NET Bibliotheken zu. Wär schön wenns was geben würde das die original System-Bibliotheken nutzt..

    Naja, wird wohl ein Traum bleiben.

    Elvis



  • Für Java gibt es Native Compiler, aber die damit erzeugten exe-Dateien laufen nicht wirklich schneller, sind größer und haben eigentlich keinen Vorteil gegenüber dem Bytecode.



  • Ja, eben weil die ganze (oder ein Grossteil) der Runtime auch in die Exe gepackt wird. Wär eben schön wenn das Prog die Systemlibraries verwenden würde.
    Also dass man gedanklich zwischen C# und .net gar keine Verbindung zu machen braucht sondern dass es als Standalone-sprache wie C++, Delphi und Co verstanden und auch kompiliert wird.


Anmelden zum Antworten