Transpiler

Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den version , der blev gennemgået den 12. december 2018; checks kræver 6 redigeringer .

Transpiler  (transpiler, eng. transpiler ) - et program ( compiler type ), der udfører transpileringen af ​​programmet. [1] [2]

Transpilation er en transformation af et program, der bruger kildekoden til et program skrevet på et programmeringssprog som kildedata og producerer en tilsvarende kildekode i et andet programmeringssprog.

En transpiler oversætter mellem programmeringssprog, der fungerer på nogenlunde samme abstraktionsniveau , mens en traditionel compiler oversætter fra et højere niveau af et programmeringssprog til et sprog på lavere niveau . For eksempel kan en transpiler oversætte et program fra Pascal til C. En compiler baseret på automatisk parallelisering tager ofte et sprogprogram på højt niveau som input, og transformerer derefter dets kode og kommenterer det ved hjælp af parallelle kodeannoteringer (for eksempel openmp-modellen ) eller sprogkonstruktioner (for eksempel forall for Fortran ). [en]

Et andet formål med en transpiler er at oversætte gammel kode til at bruge den næste version af det samme programmeringssprog eller API, og dermed bryde bagudkompatibiliteten. Transpileren vil i dette tilfælde udføre automatisk koderefactoring , hvilket er nyttigt, når programmerne, der skal refaktoriseres, er uden for kontrol af den originale executor (f.eks. konvertering af programmer fra Python 2 til Python 3 eller konvertering af programmer fra en gammel API til en ny API), eller når dets manuelle behandling på grund af programmets størrelse er uhensigtsmæssig eller tager for meget tid.

Transpilere kan enten holde den oversatte kode så tæt på kildekoden som muligt for at gøre det så nemt som muligt at udvikle og fejlsøge kildekoden, eller de kan omstrukturere koden, så den oversatte kode ikke ligner kildekoden. [2] Der er også debug-værktøjer, der giver dig mulighed for at sammenligne den transkompilerede kildekode med den originale kildekode; f.eks. har SourceMap-standarden for JavaScript [3] mulighed for at kortlægge JavaScript-kode, der kører i en browser , til en kilde på et sprog, der er transpileret til JavaScript. [fire]

Eksempler på transkompilerede sprog inkluderer Closure Compiler, Coccinelle, coffeescript , Dart , Haxe , TypeScript [5] og Emscripten. [6]

Noter

  1. Typer af compilere . compilers.net (1997–2005). Hentet: 28. oktober 2010.
  2. Fowler, Martin Transparent Compilation (12. februar 2013). Hentet: 13. februar 2013.
  3. Lenz, Fitzgerald Kildekort Revision 3-forslag (11. februar 2011).
  4. Seddon, Ryan Introduktion til JavaScript-kildekort . html5rocks.com (21. marts 2012). Hentet: 21. januar 2015.
  5. Henson, Valerie Semantisk patching med Coccinelle . lwn.net (20. januar 2009). Hentet: 28. oktober 2010.
  6. Epic Games HTML5 Epic Citadel .