Transpiler (transpiler, angl. transpiler ) - program ( typ kompilátoru ), který provádí transpilaci programu. [1] [2]
Transpilace je transformace programu, který používá zdrojový kód programu napsaného v jednom programovacím jazyce jako zdrojová data a vytváří ekvivalentní zdrojový kód v jiném programovacím jazyce.
Transpiler překládá mezi programovacími jazyky, které fungují na zhruba stejné úrovni abstrakce , zatímco tradiční kompilátor překládá z vyšší úrovně programovacího jazyka do jazyka nižší úrovně . Transpiler může například přeložit program z jazyka Pascal do jazyka C. Kompilátor založený na automatické paralelizaci často bere jako vstup vysokoúrovňový jazykový program a poté transformuje svůj kód a komentuje jej pomocí paralelních anotací kódu (například model openmp ) nebo jazykových konstrukcí (například forall pro Fortran ). [jeden]
Dalším účelem transpileru je přeložit starý kód pro použití další verze stejného programovacího jazyka nebo API, čímž se naruší zpětná kompatibilita. Transpiler v tomto případě provede automatické refaktorování kódu , což je užitečné, když jsou programy, které mají být refaktorovány, mimo kontrolu původního spouštěče (například převod programů z Pythonu 2 do Pythonu 3 nebo převod programů ze starého API na nové API) nebo když je vzhledem k velikosti programu jeho ruční zpracování neúčelné nebo zabere příliš mnoho času.
Transpilery mohou buď ponechat přeložený kód co nejblíže zdrojovému kódu, aby byl vývoj a ladění zdrojového kódu co nejjednodušší, nebo mohou kód restrukturalizovat tak, aby přeložený kód nevypadal jako zdrojový kód. [2] Existují také ladicí nástroje, které umožňují porovnat překompilovaný zdrojový kód s původním zdrojovým kódem; například standard SourceMap pro JavaScript [3] má schopnost mapovat kód JavaScript běžící v prohlížeči na zdroj v jazyce přeloženém do JavaScriptu. [čtyři]
Příklady transkompilovaných jazyků zahrnují Closure Compiler, Coccinelle, coffeescript , Dart , Haxe , TypeScript [5] a Emscripten. [6]