Wie kann ich auf Englisch sagen, dass die Programmiersprache in andere Programmiersprachen kompiliert werden kann?
Das Beispiel kann Haxe sein . Auf der Website ist die Sprache als "Multiplattform" beschrieben:
Multiplattform: Haxe kann mit seinem schnellen Compiler für alle gängigen Programmierplattformen kompiliert werden - JavaScript, Flash, NekoVM, PHP, C ++, C # und Java (in Kürze)
Multiplattform kann jedoch als Hardware- oder Softwareplattform (win, mac, linux) missverstanden werden.
Also, was ist das am besten geeignete Wort, das diese Fähigkeit beschreibt?
Antworten:
Der übliche Begriff ist "Transcompilation" - kein gebräuchlicher, aber der technisch korrekte. Es ist nicht nur für trendige neue Skriptsprachen (CoffeeScript -> JavaScript) gedacht. Die ersten C ++ - Compiler waren tatsächlich Transcompiler nach C.
quelle
Tut mir leid, aber das Wort dafür ist nur "zusammengestellt" . Es bedeutet, einen Codetyp in einen anderen Codetyp umzuwandeln. Es macht keinen wirklichen Unterschied, ob dieser Code Englisch, C ++, x86-Maschinencode, ARM-Maschinencode, Java, Bytecode oder zurück zu Englisch ist. Wir verwenden es im Allgemeinen, um die Reise von der Programmiersprache zum Maschinencode zu bezeichnen, aber das ist ein Aspekt, den das Wort im Laufe der Zeit gewonnen hat. Und hey, wenn genug Leute anfangen, ein Wort falsch zu verwenden, erhält es tatsächlich diese neue Bedeutung. Wenn Sie jedoch ein Wort für die Umwandlung von Haxe in C ++ möchten, lautet das Wort "compiliert" .
(Außerdem ignoriere ich Merriam-Webster, weil sie dumm sind, weil sie nicht mit mir übereinstimmen ... hmmmm)
quelle
Vielleicht ist dies eine Frage für https://english.stackexchange.com/, aber ich würde sagen, dass der Prozess des Kompilierens das Kompilieren in eine andere Hochsprache umfasst und nicht nur auf Compiler beschränkt ist, die mit nativem Maschinencode kompilieren.
Als ein Wort ist "Kompilieren" überhaupt nicht spezifisch für Computer-Compiler und ist ziemlich allgemein. "Eine Tabelle zusammenstellen" oder "eine Liste von Namen zusammenstellen" kommt mir in den Sinn, deshalb ist es breit genug für viele Zwecke (Textverarbeitungsprogramme wie Latex kompilieren auch usw.). Um das Ziel der Kompilierung genauer zu bestimmen, würde ich den Quell-Compiler verwenden
Nun zum konkreten Beispiel, ich denke, dass Plattform ein passendes Wort ist. Da menschliche Sprachen von Natur aus zwiespältig sind, müssen Sie Redundanz verwenden (Beispiele, mit anderen Worten umschreiben, erklären), um den Punkt zu vermitteln, wenn Sie Zweifel haben.
Ich würde die "Haxe" -Anweisung auch so lesen, dass sie Standardbibliotheken und ähnliches enthält. Das heißt, in diesem Fall wäre die Plattform eine Obermenge von "Sprache", und Sie könnten sie davon trennen, indem Sie sie "Softwareentwicklungsplattform" usw. nennen.
quelle
Man kann sagen , dass ein Compiler X, Y und Z als Übersetzung hat Ziele , oder stellen Sie eine Sprache mit diesen Zielen im Auge behalten.
quelle
Ich würde sagen, dass der Compiler per Definition in eine andere Programmiersprache übersetzt (zumindest ist dies die mir bekannte Definition - ein Programm, das eine Sprache in eine andere transformiert). Zum Beispiel erzeugen die meisten C-Compiler Assembler als Ausgabe. Assembly-Compiler nehmen diese Ausgabe und wandeln sie in den Binärcode um, der auch eine Sprache ist (sicher - wahrscheinlich schreibt niemand in den letzten 40 Jahren oder länger darin, aber technisch ist es die Sprache). Operationen von Prozessoren (oder es gibt bestimmte Operationen, die der Linker an Objektdateien ausführt). Ebenso die
javap
kompiliert in Bytecode. Normalerweise befindet sich am Ende einer solchen Kette ein Interpreter, der den endgültigen Code ausführt (sei es CPU, GPU oder ausgeführtes Programm). So etwas wie Maschinencode gibt es nicht, da modernes x86 die Programme in interne Operationen (Micro-Ops) umkompiliert, und ich bin perfekt in der Lage, ARM-Maschinencode als interpretierte Sprache auf x86 oder umgekehrt zu behandeln (in einigen Fällen sogar neu zu kompilieren) von einer Form zur anderen).Haxe ist ein Source-to-Source- Compiler, da die übergeordnete Sprache nicht wie in den vorherigen Beispielen in eine niedrigere umgewandelt wird. Es scheint nicht direkt auf Ihr Problem der Multiplattform-Ambiguität einzugehen, aber ich glaube leider nicht, dass es einen praktischen Weg zur Unterscheidung zwischen diesen beiden Dingen gibt - die APIs sind Sprachen, die im Allgemeinen interpretiert, neu kompiliert usw. werden können.
quelle
Das erste zuerst: Ich weiß nicht, ob es für diese Funktion bereits ein passendes Wort gibt.
Aber vielleicht könnte man es auch mehrsprachig nennen? Oder sprachwissenschaftlich? Da es mehr um die Programmiersprache geht, könnte die Erwähnung von "Sprache" im Namen dies offensichtlicher machen als die Multiplattform.
Natürlich ist die Sprache auch mehrdeutig, da verstanden werden kann, dass der Quellcode in jeder realen Sprache geschrieben werden kann (zum Beispiel, weil Variablen in Unicode geschrieben werden können).
Auf der anderen Seite wird jeder erfahrene Programmierer ein solches Konstrukt wahrscheinlich als von der Lokalisierung oder Internationalisierung verschieden erkennen, so dass er es möglicherweise leichter "bekommt".
Nur meine 2 Cent.
quelle