Transpiler

Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od verze recenzované 12. prosince 2018; kontroly vyžadují 6 úprav .

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]

Poznámky

  1. Typy kompilátorů . kompilátory.net (1997–2005). Staženo: 28. října 2010.
  2. Fowler, Martin Transparentní kompilace (12. února 2013). Staženo: 13. února 2013.
  3. Lenz, Fitzgerald Source Map Revize 3 Návrh (11. února 2011).
  4. Seddon, Ryan Úvod do map zdrojového JavaScriptu . html5rocks.com (21. března 2012). Staženo: 21. ledna 2015.
  5. Henson, Valerie Sémantické záplatování pomocí Coccinelle . lwn.net (20. ledna 2009). Staženo: 28. října 2010.
  6. Epic Games HTML5 Epic Citadel .