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]