Różnica między kompilatorem a tłumaczem

Różnica między kompilatorem a tłumaczem

Kompilator vs Interpreter

Pisząc programy w języku wysokiego poziomu, komputer nie będzie w stanie tego zrozumieć. Aby był użyteczny, musisz przekonwertować go w coś, co rozumie komputer. Tutaj przychodzą kompilatorzy i tłumacze, ponieważ oboje wykonują tę samą funkcję. Główną różnicą między kompilatorem a interpretera jest to, że wykonują kod. Z tłumaczem kod jest wykonywany od razu z interpretacją przekazywania interpretowanego kodu do komputera. Dla porównania kompilator nie wykonuje kodu. Zamiast tego zapisuje gotowy kod na dysku. Kod zapisany na dysku można następnie wykonać w dowolnym momencie.

Główna różnica między tłumaczem a kompilatorem odradza inną. Ponieważ interpreter jest potrzebny podczas uruchamiania programu, musisz zainstalować interpretera, jeśli chcesz wykonać program w komputerze. Tak nie jest w przypadku kompilatora. Po skompilowaniu programu potrzebujesz tylko kompilowanego programu, a nie kompilatora lub oryginalnego kodu.

Zaletą używania interpretera zamiast kompilatora jest możliwość wykonywania programu na komputerach z różnymi systemami operacyjnymi; Biorąc pod uwagę, że masz odpowiedniego tłumacza. Kiedy kompilujesz program, byłby on wyłącznie dla określonego systemu operacyjnego i nie działałby na innych. Aby działał w innym systemie operacyjnym, musisz zoptymalizować kod dla tego systemu operacyjnego i ponownie go skompilować.

Minusem używania tłumacza jest dodane koszty ogólne. Interpreter potrzebowałby pewnej mocy obliczeniowej, a każda linia kodu byłaby interpretowana w czasie wykonywania. Nie jest tak, gdy masz skompilowany program, ponieważ system operacyjny może go odczytać bezpośrednio i wykonać każde polecenie. Dodatkowy etap kodu interpretacji sprawia, że ​​interpretowany program działa znacznie wolniej niż zebrany kod. Interpreter nie byłby również w stanie skorzystać z optymalizacji specyficznych dla systemu OS, które mogą pozwolić, aby skompilowany program działał bardziej wydajnie.

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 nie
  2. Interpreter musi być dostępny w komputerze docelowym, podczas gdy kompilator nie jest
  3. Interpretowany program będzie działał na wielu platformach, podczas gdy skompilowany program nie
  4. Interpretowany program będzie działał wolniej niż program skompilowany