Najlepsze pytania
Chronologia
Czat
Perspektywa
Transpilator
kompilator, który przetwarza kod źródłowy na kod źródłowy w innym języku programowania, ale na tym samym poziomie abstrakcji Z Wikipedii, wolnej encyklopedii
Remove ads
Transpilator (także transkompilator)[1][2][3] – rodzaj kompilatora, który przetwarza kod źródłowy programu napisanego w języku programowania na równoważny kod w innym języku programowania (lub w tym samym języku, ale w innym wariancie). Transpilator różni się tym od typowego kompilatora, że zarówno wejściowy, jak i wynikowy kod operuje w przybliżeniu na tym samym poziomie abstrakcji, podczas gdy tradycyjny kompilator tłumaczy z języka programowania wyższego poziomu na język programowania niższego poziomu. Inaczej niż w typowych kompilatorach, po transpilacji wynikowy kod może być nadal czytelny dla człowieka (o ile nie został dodatkowo poddany minifikacji).
Remove ads
Rodzaje transpilacji
Podsumowanie
Perspektywa
Przykładem transpilacji może być przetworzenie programu napisanego w Pythonie na JavaScript, podczas gdy tradycyjny kompilator tłumaczy z języka takiego jak C na asembler lub Java na bytecode[4]. Przetwarzanie z jednego języka na drugi może być używane np. w wypadku przenoszenia bibliotek na inny język lub tworzenia kodu w lepiej znanym środowisku. Istnieją również języki jak TypeScript, dla których transpilacja jest naturalnym procesem, ponieważ TS został zaprojektowany tak, żeby był przetwarzany i uruchamiany jako JavaScript.
Innym celem transpilacji jest tłumaczenie kodu napisanego dla starszej wersji języka na nowszy (na przykład tłumaczenie kodu pisanego w Python 2 na Python 3). Narzędzie przeprowadzi automatyczną refaktoryzację kodu, co ma ułatwić i przyśpieszyć proces przejścia na nową wersję. Wynikowy kod nie musi być jednak gotowy do bezpośredniego użycia (może wymagać ręcznych zmian).
Często spotykany jest również odwrotny proces – przetwarzanie kodu z nowszej wersji języka na język zgodny ze starszą wersją. Jest to szczególnie popularne w sytuacji, gdy osoba tworząca kod nie ma wpływu na środowisko uruchomieniowe. Tak jest w przypadku tworzenia kodu dla przeglądarek internetowych, stąd popularność kompilatorów takich jak Babel przetwarzających ECMAScript 6 na wersję 5.
Remove ads
Mapowanie źródeł
Transkompilatory mogą albo utrzymywać strukturę kodu przetłumaczonego jak najbliżej kodu źródłowego, aby ułatwić testowanie i debugowanie oryginalnego kodu źródłowego, lub mogą zmieniać strukturę oryginalnego kodu tak bardzo, że przetłumaczony kod nie wygląda jak kod źródłowy[5].
Istnieją jednak standardy i narzędzia, które mapują transpilowany kod źródłowy z powrotem na kod oryginalny. Przykładem może być standard JavaScript Source Map[6], który specyfikuje jak mapować kod JavaScript tak, żeby narzędzia w przeglądarce internetowej mogły pokazać oryginalny kod przy debugowaniu[7].
Remove ads
Lista transpilatorów
Podsumowanie
Perspektywa
Poniżej znajduje się lista transpilatorów, które transformują jeden język w drugi. Część z nich stanowi jedynie asystę przy migracji (np. Swiftify). Inne stawiają sobie za cel przetworzenie każdego kodu na ekwiwalent w innym języku (np. CoffeeScript). W wypadku tych drugich kod można tworzyć w jednym języku i za każdym razem budować aplikację do uruchomienia w innym języku.
Remove ads
Zobacz też
Przypisy
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads