Compiler Vs Interpreter Vs Transpiler
Während einer reactJs Sitzung, die ich besuchte, die presenter verwendet einen Begriff, der transpiler für einige code-Umstellung/Portierung geschieht. Ich habe immer verwendet, und hörte die Begriffe compiler und-interpreter, wenn es um die Umwandlung einer Sprache code zu einer lauffähigen form auf einem computer-system/Maschine. Transpiler ist komplett neu für mich. Kann mir jemand helfen zu verstehen, wie ein Transpiler unterscheidet sich von einem compiler oder einem interpreter und warum ist es wirklich notwendig?
- Du hast Recht - transpiler ist ein redundanter Begriff, und sollte niemals verwendet werden. Jeder compiler ist ein "transpiler".
- Liebe downvoter - Wenn Sie verlassen kann, eine entsprechende feedback/Kommentar-dann kann ich eine entsprechende Aktion zur Verbesserung der post.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wie erwähnt wird in diesem Wiki-Artikel, es ist eine Art von compiler, die übersetzt Quellcode von einer Programmiersprache in eine andere Programmiersprache. Der Quellcode könnte in einigen Sprache nicht mehr verwendet wird, oder keine Unterstützung für die neuesten hardware/software-Weiterentwicklungen oder wie pro programmer ' s Komfort - /Günstlingswirtschaft.
Einer VB6 zu VB.NET Konverter gedacht werden kann, wie ein Transpiler. Ich könnte COBOL zu C# /C++ /Java tool als transpiler.
Xtend
(eclipse.org/xtend) undNetRexx
(netrexx.org) sind 2 Sprachen übersetzt JavaCompiler - kompiliert den code auf einen niedrigeren level-code.
Beispiel:
"Developer code"
->"Machine code"
PHP
->C
Java
->bytecode
Transpiler - kompiliert den code, um dasselbe Niveau der code/Abstraktion.
Beispiel:
"Developer code"
->"Another developer code or version"
JavaScript ES2015+
->JavaScript ES5
Dolmetscher - code interpretiert, nicht wirklich in der gleichen Klasse/Liga Kontext mit den beiden oben genannten.
Beispiel:
php.exe
index.php
" -> "Ergebnisse zuhtml
oder einfach nur wie pureindex.html
"Er wird oft als 'transpiling', bei der übersetzung von code mit JS-Präprozessoren wie CoffeeScript, TypeScript (you name it) zu reinem JavaScript.
Aber es ist wirklich nicht eine JS-exklusive Sache. Es gilt für alle Arten von Programmiersprachen. Meistens ist es nur genannt kompilieren.
Nach https://www.stevefenton.co.uk/2012/11/compiling-vs-transpiling/
So, in Ihrem Fall:
Anderes Beispiel:
Ich habe den Bau solcher Werkzeuge seit den 1980er Jahren.
Nannten wir Sie "Quelle program transformation systems".
Dieser Begriff diente in Ordnung, AFAICT, für über 45 Jahre. Die Idee geht weit zurück vor dass; siehe Val Schorre ist Meta-II-Compiler-compiler-Arbeit für ein 1963 version dieser Idee.
Nun haben wir diesen neuen Begriff; ich begann sehen es vor ein paar Jahren. Es fügt sich nichts, aber es klingt geheimnisvoll und cool. Dies ist, wie die Priester, um Ihre Würdigkeit; Sie erfinden neue Vokabeln für alte Ideen.
Quelle : Wikipedia
Beispiel: C-Compiler (C-zu-Maschine-code) javac-tool des JDK (java byte code)
Beispiel: Babel (ES6+ zu ES5), die Sie verwenden können, zu schreiben, die ES6-code, während immer noch die Unterstützung von älteren Browsern wie IE 11 und unten.
Per definition transpiler ist eine Besondere form der übersetzer.
Compiler wandelt hohem Niveau source-code ein code, der unteren Ebene der Abstraktion. Normalerweise, aber nicht notwendigerweise, ist das Ziel der Zusammenstellung ist Maschine code. Das heißt, dass ein code, der ausgeführt werden kann, wird direkt durch die CPU. Compiler können auch produzieren bytecode eine simulation der Maschinen-code, sondern später interpretiert von so genannten virtuellen Maschine (z.B. Java-bytecode und die Java-VM). Doch der Begriff compiler anwenden können, um die eine, die wandelt den code in einer anderen Programmiersprache, die nicht von einer Maschine ausführbaren code. Merkliche Unterschied ist, dass der compiler senkt das Niveau der Abstraktion.
Übersetzer wandelt den Quellcode von einer Programmiersprache in eine andere Programmiersprache der gleichen oder verschiedenen Ebene der Abstraktion. Beachten Sie, dass Ergebnis kann eine Maschine code, wenn source-code wurde auch ein Computer-code.
Traspiler ist sehr ähnlich wie übersetzer, aber speziell wandelt den Quellcode zwischen den Programmiersprachen des gleichen Ebene der Abstraktion. Beachten Sie, dass die Programmiersprachen unterscheiden sich und viel in dem, was Sie Abstrakt, und unterscheiden sich in der Ebene der Abstraktion, vor allem, da es gilt verschiedene Konzepte Sie unterstützen als eine Abstraktion. Aufgrund der, dass die Konvertierung (transpilation) wird oft zwischen der ähnliche, nicht die gleichen Ebenen der Abstraktion.
Compiler - Es fungiert als eine Schnittstelle zwischen Mensch und computer für die Umwandlung von menschlichen Verständnis von Sprache zu Maschine verstehen von Sprache.
Arten von Compiler
Der compiler zum kompilieren eines source-code für die gleiche Art von Plattform, nur. Die erzeugte Ausgabe ist durch diese Art der compiler kann nur ausgeführt werden, auf die gleiche Art von computer und Betriebssystem(OS), die der compiler selbst läuft auf.
Der compiler zum kompilieren eines Quellcodes für unterschiedliche Arten Plattform. Bei der Herstellung von software für embedded-Systeme, die verwendet werden können, die auf mehreren Plattformen.
Wandelt HLL(High Level Language) oder der Quell-Sprache LLL(Low-Level-Sprache) oder Maschinensprache.
Wandelt HLL (High Level Language) zu einem anderen HLL