Google Play badge

kompilatory


KOMPILERY

Kompilator to program komputerowy służący do tłumaczenia kodu komputerowego napisanego w jednym języku programowania (zwanym językiem źródłowym) na inny język programowania (zwany językiem docelowym). Termin kompilator jest stosowany głównie w odniesieniu do programów, które tłumaczą kody źródłowe z języka programowania wysokiego poziomu na język programowania niższego poziomu. Na przykład kod maszynowy, kod obiektowy lub język asemblera, aby utworzyć program wykonywalny.

Należy pamiętać, że istnieje wiele różnych typów kompilatorów. W przypadku, gdy kompilowany program może działać na komputerze, którego system operacyjny lub procesor jest inny niż ten, na którym działa kompilator, kompilator nazywany jest kompilatorem krzyżowym. Z drugiej strony kompilator ładowania początkowego jest napisany w języku, który zamierza skompilować. Dekompilator to program używany do tłumaczenia języka niskiego poziomu na język wyższego poziomu. Program używany do tłumaczenia między językami wysokiego poziomu nazywany jest kompilatorem źródło-źródło. Można go również nazwać transpilatorem. Program odpowiedzialny za tłumaczenie formy wyrażeń bez zmiany języka nazywany jest korektorem języka. Termin kompilator-kompilator odnosi się do narzędzi, które służą do tworzenia parserów odpowiedzialnych za przeprowadzanie analizy składni.

Niektóre operacje wykonywane przez kompilator obejmują: przetwarzanie wstępne, parsowanie, (tłumaczenie kierowane składnią), analizę semantyczną, analizę leksykalną, generowanie kodu, optymalizację kodu i konwersję programów wejściowych na reprezentację pośrednią. Kompilatory są odpowiedzialne za wdrażanie tych operacji w różnych fazach, które promują prawidłowe transformacje i efektywne projektowanie wejścia źródłowego do docelowego wyniku. Błędy programu spowodowane nieprawidłowym zachowaniem kompilatora mogą być bardzo trudne do wyśledzenia i obejścia. Dlatego też osoby wdrażające kompilatory wkładają znaczne wysiłki w zapewnienie poprawności kompilatora.

Należy zauważyć, że kompilatory nie są jedynymi tłumaczami używanymi do przekształcania programów źródłowych. Program komputerowy odpowiedzialny za przekształcenie, a następnie wykonanie wskazanych operacji, nazywany jest interpreterem. Proces tłumaczenia wpływa na konstrukcję języków komputerowych, co prowadzi do preferencji interpretacji lub kompilacji. W praktyce implementacja interpretera dla kompilatorów i języków kompilowanych może zostać zaimplementowana dla języków interpretowanych.

Należy pamiętać, że podczas korzystania z kompilatora do uruchomienia programu stosuje się dwuetapowy proces,

ŁAŃCUCH NARZĘDZI KOMPILACYJNYCH

W przypadku dużych programów kompilator jest częścią wieloetapowego łańcucha narzędzi,

(preprocesor)- (kompilator)- (asembler)- (linker)- (program ładujący).

STRUKTURA KOMPILERA

Nowoczesne kompilatory składają się z dwóch głównych części. Każda z tych części jest często podzielona. Te dwie główne części to przód i tył.

Frontend odpowiada za analizę programu źródłowego, konstruuje pośrednią reprezentację programu i określa jego części składowe. Generalnie frontend jest niezależny od języka docelowego.

Z drugiej strony back-end jest odpowiedzialny za syntezę programu docelowego na podstawie reprezentacji pośredniej tworzonej przez front-end. Ogólnie mówi się, że back-end jest niezależny od języka źródłowego.

Download Primer to continue