Ich bin nur neugierig, ob es irgendeine Art von Programm/Anwendung gibt, die es ermöglicht, Code in einer Sprache einzugeben und diesen in eine andere Sprache wie z. B. asm zu übersetzen. Dies scheint perfekt möglich....so gibt es so etwas?
Antworten
Zu viele Anzeigen?Ja, man nennt sie Compiler.
Compiler sind nur ein Beispiel für eine Klasse von Programmen, die Sprachübersetzer genannt werden.
Compiler konvertieren höhere Sprachen wie C++ und Java in niedrigere Sprachen, einschließlich Bytecode für virtuelle Maschinen, Assembler, C oder direkt in maschinenlauffähigen Objektcode.
Im Grunde tut dies jeder Compiler, da Assembler nur eine andere Form von Maschinencode ist. Ich glaube, dass GCC dies explizit tut, und dass Sie ihn bitten können, Ihnen den Zwischen-Assembler zu zeigen. Werfen Sie zum Beispiel einen Blick auf die GNU-Assembler .
Problematisch wird es, wenn man sagt, dass etwas "durchaus möglich" ist. Eine Eigenschaft einer Sprache lässt sich oft nicht direkt oder einfach in eine andere übersetzen; deshalb wählen wir ja überhaupt eine Sprache für eine Aufgabe! Zum Beispiel ist die Umwandlung einer Fibonacci-Zahl von Java nach C trivial, aber nach Haskell? Sicherlich ist es noch machbar, aber versuchen Sie einmal, ein Programm zu konvertieren, das Posix-Threads öffnet und auf mehreren Ports auf verschiedene Teile des Netzwerkverkehrs wartet.
Fast jedes Stück nützlichen Codes stützt sich weitgehend auf externe Bibliotheken, von denen viele pas offene Quelle. Abgesehen davon, was denken Sie, sollte das Folgende in C übersetzt werden? Oder sogar in Java?
def method( f ):
G = {'a':1}
f(G)
def f( x ):
print( [ (key, value) for (key,value) in x.items() ] )
method(f)
Diese Aufgabe ist von Natur aus komplizierter, als es den Anschein hat, außer im trivialsten Fall (C-Sprache zu C-Sprache). Der Wechsel zwischen statisch und dynamisch typisierten Sprachen wird schwierig sein, ebenso wie alle sprachspezifischen Aspekte.
Das könnte Sie interessieren Haxe, siehe http://haxe.org/ .
Hier ist ein Programm zur Konvertierung von .NET-Code in Java, PHP, JavaScript und ActionScript http://jsc.sourceforge.net/
- See previous answers
- Weitere Antworten anzeigen