Jakie są różnice między kompilatorem a interpretem?
A. Interpreter tworzy plik wykonywalny, który funkcjonuje niezależnie od otoczenia
B. Kompilator przetwarza kod na język maszynowy w momencie jego wykonywania
C. Kompilator przekształca kod źródłowy na język maszynowy przed uruchomieniem aplikacji
D. Interpreter konwertuje kod źródłowy na język maszynowy przed jego kompilacją
Kompilator zamienia kod źródłowy na język maszynowy zanim program się uruchomi. W efekcie dostajemy plik wykonywalny, taki jak .exe w Windowsie. To fajne, bo po skompilowaniu aplikacja działa samodzielnie i nie potrzeba jej tłumaczyć od nowa. Dzięki temu programy, które są skompilowane, są zazwyczaj dużo szybsze i lepiej zoptymalizowane niż te, które są interpretowane. Warto wiedzieć, że kompilatory są wykorzystywane w językach takich jak C, C++ czy Java. Kompilacja ma też tę zaletę, że można wykrywać błędy jeszcze przed uruchomieniem programu, co jest naprawdę przydatne.
Kompilator nie tłumaczy kodu w trakcie jego działania, bo to już zadanie interpretera. Interpreter przetwarza kod linijka po linijce podczas działania programu. Z tego powodu nie tworzy plików wykonywalnych, program po prostu działa w czasie rzeczywistym, a to sprawia, że działa wolniej. Mówiąc krótko, tłumaczenie kodu przed kompilacją to nie jest to, co się robi – kompilacja to proces, który tworzy plik wykonywalny z kodu źródłowego. Dlatego interpreter nie generuje żadnych niezależnych plików, tylko analizuje i wykonuje kod od razu.