Compilateur source à source

Cet article est une ébauche concernant l’informatique.

Vous pouvez partager vos connaissances en l’améliorant (comment ?) selon les recommandations des projets correspondants.

Si ce bandeau n'est plus pertinent, retirez-le. Cliquez ici pour en savoir plus.
Si ce bandeau n'est plus pertinent, retirez-le. Cliquez ici pour en savoir plus.

Cet article ne cite pas suffisamment ses sources ().

Si vous disposez d'ouvrages ou d'articles de référence ou si vous connaissez des sites web de qualité traitant du thème abordé ici, merci de compléter l'article en donnant les références utiles à sa vérifiabilité et en les liant à la section « Notes et références ».

En pratique : Quelles sources sont attendues ? Comment ajouter mes sources ?

Un compilateur source à source, transpileur ou transcompilateur est un type de compilateur qui prend le code source d'un langage de programmation et le compile dans un autre langage de programmation. Un compilateur source-à-source opère sur deux langages avec approximativement le même niveau d'abstraction, alors qu'un compilateur traditionnel compile un langage de haut niveau vers un langage de bas niveau.

Historique

Un des premiers compilateurs de ce type était le XLT86 de Digital Research en 1981, un programme écrit par Gary Kildall qui compilait du code .ASM pour le processeur Intel 8080 en code source .A86 pour le processeur Intel 8086.

Implémentations

Certains langages de programmation ont été supportés par un transpileur avant de l'être par un compilateur. Parfois un compilateur ne voit jamais le jour.

  • Babel.js[1] est un transpileur qui permet de convertir du JavaScript (version ES2015 ou supérieure), CoffeeScript ou TypeScript en code compatible avec les navigateurs du marché (en ES5 par exemple).
  • C++ (à cette époque "C avec classes") transcompilait en C avec le transpileur cfront.
  • CoffeeScript, TypeScript, et toute la famille, vers du JavaScript.
  • Efene, vers de l'Erlang.
  • Eiffel vers du C.
  • Haxe, vers JavaScript, PHP, C++, C#, et Java. Aussi compilable vers du bytecode comme celui d'ActionScript.
  • Lisaac, vers du C.
  • Mirah, vers du Java.
  • PHP, vers le C++ via HipHop.
  • Vala, vers du C.
  • Xtend, vers du Java[2]
  • Python peut être compilé vers du C grâce au compilateur Nuitka.

De plus en plus de langages aussi se compilent en JavaScript, une liste[3] existe classant ces transpileurs par famille et langages.

Références

  1. « Babel · The compiler for writing next generation JavaScript », sur babeljs.io (consulté le ).
  2. Eclipse Xtend
  3. (en) List of languages that compile to JS, sur GitHub
  • icône décorative Portail de la programmation informatique
  • icône décorative Portail de l’informatique