Au cours d’une session de réaction à laquelle j’assistais, le présentateur a utilisé un terme transpiler pour expliquer le transfert/le transfert de code. J'ai toujours utilisé et entendu les termes compilateur et interprète pour convertir un code de langue en une forme pouvant être exécutée sur un ordinateur/système informatique. Transpiler est complètement nouveau pour moi. Quelqu'un peut-il m'aider à comprendre en quoi un transpiler est différent d'un compilateur ou d'un interprète et pourquoi cela est vraiment nécessaire?
Comme mentionné dans cet article Article de wiki , il s'agit d'un type de compilateur qui traduit le code source d'un langage de programmation à un autre. Le code source peut être dans une langue qui n'est plus utilisée, ou ne prend pas en charge les dernières avancées en matière de matériel/logiciel, ou selon le côté pratique/favorable du programmeur.
Un convertisseur de VB6 à VB.NET peut être considéré comme un transpiler. Je pourrais penser de l'outil COBOL à C #/C++/Java comme un transpiler.
Compiler - compile le code en un code de niveau inférieur.
Exemple:
"Developer code"
-> "Machine code"
PHP
-> C
Java
-> bytecode
Transpiler - compile le code au même niveau de code/abstraction.
Exemple:
"Developer code"
-> "Another developer code or version"
JavaScript ES2015+
-> JavaScript ES5
Interprète - interprète le code, pas vraiment dans la même classe/ligue/contexte avec les deux ci-dessus.
Exemple: php.exe
index.php
" -> "Résultats dans html
ou comme pure index.html
"Cela s'appelle souvent 'transpiler', lorsque vous traduisez du code avec des préprocesseurs JS tels que CoffeeScript, TypeScript (vous le nommez) en JavaScript pur… .. Mais ce n'est pas vraiment une chose exclusive à JS. Cela s'applique à tous les types de langages de programmation. La plupart du temps, cela s'appelle simplement compiler.
Transpiling est un terme spécifique utilisé pour écrire le code source dans une langue et se transformer en une autre langue qui a un niveau d'abstraction similaire.
Selon https://www.stevefenton.co.uk/2012/11/compiling-vs-transpiling/
Donc, dans votre cas:
Un autre exemple:
Un compilateur source à source effectue la traduction entre des langages de programmation fonctionnant approximativement au même niveau d'abstraction, tandis qu'un compilateur traditionnel effectue la traduction d'un langage de programmation de niveau supérieur en un langage de programmation de niveau inférieur.
Source: Wikipedia
Par définition, transpiler est une forme spéciale de translator.
Compiler convertit le code source de haut niveau en un code de niveau d'abstraction inférieur. Généralement, mais pas nécessairement, l'objectif de la compilation est code machine. C'est-à-dire un code qui peut être exécuté directement par la CPU. Le compilateur peut également produire bytecode, une simulation du code machine, mais est ensuite interprété par une machine dite virtuelle (à savoir, bytecode Java et machine virtuelle Java). Cependant, le terme compiler peut s’appliquer à celui qui convertit le code en un autre langage de programmation qui n’est pas un code exécutable par la machine. La différence notable est que le compilateur réduit le niveau d'abstraction.
Translator convertit le code source d'un langage de programmation en un autre langage de programmation de niveau identique ou différent. Notez que le résultat peut être un code machine, si le code source était aussi un code machine.
Traspiler est très similaire à traducteur, mais convertit spécifiquement le code source entre les langages de programmation du même niveau d'abstraction même. Notez que les langages de programmation diffèrent beaucoup dans ce qu’ils abstiennent; Les niveaux d’abstraction diffèrent d’autant plus qu’ils s’appliquent à différents concepts qu’ils considèrent comme une abstraction. De ce fait, la conversion (transpilation) se situe souvent entre le similaire, pas les mêmes niveaux d'abstraction.
Compiler - Il agit comme une interface entre l'homme et l'ordinateur pour convertir le langage de compréhension humaine en langage de compréhension machine.
Types de compilateur