Kompilator i tłumacz
Kompilator kontra interpreter
Podczas pisania programów w języku wysokiego poziomu komputer nie będzie w stanie tego zrozumieć. Aby był on użyteczny, musisz go przekształcić w coś, co komputer rozumie. Tutaj przychodzą kompilatory i interpretatory, ponieważ obie pełnią tę samą funkcję. Główną różnicą między kompilatorem a tłumaczem jest wykonanie kodu. Dzięki interpreterowi kod jest wykonywany od razu z interpretacją przekazującą zinterpretowany kod do komputera. Dla porównania kompilator nie wykonuje kodu. Zamiast tego zapisuje gotowy kod na dysku. Kod zapisany na dysk można następnie wykonać w dowolnym momencie.
Główna różnica między tłumaczem a kompilatorem powoduje pojawienie się kolejnego. Ponieważ interpreter jest potrzebny, gdy uruchamiasz program, musisz mieć zainstalowany interpreter, jeśli chcesz uruchomić program w swoim komputerze. Tak nie jest w przypadku kompilatora. Po skompilowaniu programu wystarczy skompilowany program, a nie kompilator lub oryginalny kod.
Zaletą korzystania z interpretera, a nie kompilatora, jest możliwość uruchomienia programu na komputerach z różnymi systemami operacyjnymi; biorąc pod uwagę, że masz odpowiedniego tłumacza. Podczas kompilacji programu byłby on przeznaczony tylko dla określonego systemu operacyjnego i nie działałby na innych. Aby uruchomić go w innym systemie operacyjnym, musisz zoptymalizować kod dla tego systemu operacyjnego i skompilować go ponownie.
Minusem korzystania z interpretera jest dodatkowy narzut. Tłumacz potrzebowałby mocy obliczeniowej, a każda linia kodu byłaby interpretowana podczas pracy. Nie dzieje się tak, gdy masz skompilowany program, ponieważ system operacyjny może go odczytać bezpośrednio i wykonać każde polecenie. Dodatkowy krok interpretacji kodu powoduje, że zinterpretowany program działa znacznie wolniej niż skompilowany kod. Interpreter nie będzie mógł również korzystać z optymalizacji systemu operacyjnego, która pozwala na wydajniejsze działanie skompilowanego programu.
Wybór między kompilatorem a tłumaczem powinien zależeć od tego, czy chcesz przenośność, czy wydajność.
Streszczenie:
- Interpreter wykonuje bezpośrednio kod, podczas gdy kompilator go nie obsługuje
- W maszynie docelowej musi być dostępny interpreter, podczas gdy kompilator nie jest dostępny
- Zinterpretowany program będzie działał na wielu platformach, podczas gdy skompilowany program nie będzie
- Zinterpretowany program będzie działał wolniej niż skompilowany program