Kompilator i tłumacz

Anonim

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:

  1. Interpreter wykonuje bezpośrednio kod, podczas gdy kompilator go nie obsługuje
  2. W maszynie docelowej musi być dostępny interpreter, podczas gdy kompilator nie jest dostępny
  3. Zinterpretowany program będzie działał na wielu platformach, podczas gdy skompilowany program nie będzie
  4. Zinterpretowany program będzie działał wolniej niż skompilowany program