Transcompilador

De la Viquipèdia, l'enciclopèdia lliure

Un traductor font a font, compilador font a font (compilador S2S), transcompilador o transpilador [1] és un tipus de traductor que pren el codi font d'un programa escrit en un llenguatge de programació com a entrada i produeix un codi font equivalent en el mateix llenguatge de programació o en un diferent. Un traductor d'origen a font converteix entre llenguatges de programació que operen aproximadament al mateix nivell d'abstracció, mentre que un compilador tradicional tradueix d'un llenguatge de programació de nivell superior a un llenguatge de programació de nivell inferior. Per exemple, un traductor d'origen a font pot realitzar una traducció d'un programa de Python a JavaScript, mentre que un compilador tradicional tradueix des d'un llenguatge com ara C a assemblador o Java a bytecode. Un compilador de paral·lelització automàtica sovint acceptarà un programa de llenguatge d'alt nivell com a entrada i després transformarà el codi i l'anotarà amb anotacions de codi paral·lel (p. ex., OpenMP) o construccions de llenguatge (p. ex. Declaracions forall de Fortran).[2]

Un altre propòsit de la compilació d'origen a font és traduir el codi heretat per utilitzar la següent versió del llenguatge de programació subjacent o una API que trenca la compatibilitat enrere. Realitzarà una refactorització automàtica del codi que és útil quan els programes a refactoritzar estan fora del control de l'implementador original (per exemple, convertir programes de Python 2 a Python 3, o convertir programes d'una API antiga a la nova API) o quan La mida del programa fa que sigui poc pràctic o requereix molt de temps refactoritzar-lo a mà.[3]

Els transcompiladors poden mantenir l'estructura del codi traduït el més a prop possible del codi font per facilitar el desenvolupament i la depuració del codi font original o poden canviar l'estructura del codi original tant que el codi traduït no s'assembla al codi font. També hi ha utilitats de depuració que mapegen el codi font transcompilat amb el codi original; per exemple, l'estàndard JavaScript Source Map permet mapejar el codi JavaScript executat per un navegador web a la font original quan, per exemple, el codi JavaScript va ser minificat o produït per un llenguatge transcompilat a JavaScript.[4]

Alguns exemples inclouen Closure Compiler, CoffeeScript, Dart, Haxe, Opal, TypeScript i Emscripten.

Referències[modifica]

  1. «Source to Source Compiler» (en anglès). https://www.geeksforgeeks.org,+15-06-2021.+[Consulta: 17 desembre 2022].
  2. «Source-to-source-Compiler» (en anglès). https://github.com,+20-09-2022.+[Consulta: 17 desembre 2022].
  3. Jindal, Aarnav. «Transpilers : Source-to-Source Compilers» (en anglès). https://aarnavjindal.medium.com,+03-07-2019.+[Consulta: 17 desembre 2022].
  4. «Source-to-source compiler» (en anglès). https://www.sources.com.+[Consulta: 17 desembre 2022].