Pok-1-wyk-Slajd3

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania

Kompilatory i interpretery

Kompilatory i interpretery


Kompilator jest programem, który przetwarza kod napisany w jednym języku (tzw. języku źródłowym) na równoważny kod w drugim języku (tzw. języku wynikowym).

Pierwsze kompilatory zaczęto tworzyć na początku lat 50-tych. Od tego czasu powstało mnóstwo kompilatorów różnego typu.

Istnieją kompilatory dla tysięcy języków źródłowych od tradycyjnych uniwersalnych języków programowania takich jak wciąż używany Fortran, Pascal czy C aż do języków wyspecjalizowanych do konkretnych zastosowań takich jak np. stworzony przez firmę Inmos język programowania systemów równoległych occam przeznaczony dla transputerów.

Różne są także języki wynikowe generowane przez kompilatory – począwszy od innego języka programowania (istnieją np. kompilatory tłumaczące z języka Fortran na język Pascal) przez przenośny kod pośredni dla różnorodnych maszyn wirtualnych (sztandarowym przykładem jest język Java i platforma .NET) do języka maszynowego dowolnego komputera od mikrokontrolera do superkomputera. Ważną odmianą kompilatorów są także tzw. kompilatory skrośne pozwalające na generowania kodu wykonywalnego dla innej platformy niż ta, na której uruchamiany jest kompilator skrośny. Takie rozwiązanie jest niezbędne do kompilowania kodu na platformy, na których nie można bezpośrednio uruchomić kompilatora ponieważ nie ma do nich bezpośredniego dostępu lub dostęp jest znacznie utrudniony. Typowym przykładem takich systemów są systemy wbudowane.

Alternatywnym typem translatora jest interpreter. Interpreter jest programem, który nie generuje programu wynikowego tylko od razu wykonuje instrukcje zawarte w programie źródłowym. Interpretery są wykorzystywane do wykonywania języków poleceń powłok systemów operacyjnych oraz języków bardzo wysokiego poziomu takich, jak APL czy Prolog

Szczytowy okres popularności interpreterów przypadł na okres wkraczania języka Basic do domowych komputerów w drugiej połowie lat 70-tych i latach 80-tych. W chwili obecnej interpretery są rzadziej wykorzystywane niż kompilatory przede wszystkim ze względu na małą wydajność aplikacji, choć mają pewne istotne zalety – ich implementacja bywa szybsza i prostsza, można uruchamiać częściowo napisane systemy, pozwalają na szybkie i częste modyfikacje oprogramowania. Interpretery czasami bywają wykorzystywane również dla języków zwykle kompilowanych (takich, jak np. C), czasami dostępne są podejścia hybrydowe – język Prolog może być kompilowany albo interpretowany. Ważną dziedziną zastosowań interpreterów są maszyny wirtualne, choć także i tutaj ze względu na wydajność są wypierane przez kompilatory lub mechanizmy sprzętowe (np. koprocesory bezpośrednio wykonujące kod Javy).


<< Poprzedni slajd | Spis treści | Następny slajd >>