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

Kompilator kontra tłumacz

Podczas pisania programów w języku wysokiego poziomu komputer nie będzie w stanie tego zrozumieć. Aby był użyteczny, musisz przekonwertować go na coś, co komputer rozumie. Tutaj wkraczają kompilatory i tłumacze, ponieważ obaj pełnią tę samą funkcję. Główną różnicą między kompilatorem a tłumaczem jest to, kiedy wykonują kod. W przypadku interpretera kod jest wykonywany od razu, a tłumaczenie przekazuje zinterpretowany kod 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 powoduje pojawienie się kolejnej. Ponieważ interpreter jest potrzebny podczas uruchamiania programu, musisz mieć zainstalowany interpreter, jeśli chcesz uruchomić program na swoim komputerze. Nie jest tak w przypadku kompilatora. Po skompilowaniu programu wystarczy skompilowany program, a nie kompilator lub oryginalny kod.

Zaletą korzystania z interpretera zamiast kompilatora jest możliwość uruchamiania programu na komputerach z różnymi systemami operacyjnymi; biorąc pod uwagę, że masz odpowiedniego tłumacza. Gdy kompilujesz program, będzie on przeznaczony tylko dla określonego systemu operacyjnego i nie będzie działał na innych. Aby uruchomić go w innym systemie operacyjnym, musisz zoptymalizować kod dla tego systemu operacyjnego i ponownie go skompilować.

Wadą korzystania z interpretera jest dodatkowe obciążenie. Tłumacz potrzebowałby pewnej mocy obliczeniowej, a każdy wiersz kodu byłby interpretowany w czasie wykonywania. Nie jest tak w przypadku skompilowanego programu, ponieważ system operacyjny może go odczytać bezpośrednio i wykonać każdą komendę. Dodatkowy krok interpretacji kodu powoduje, że interpretowany program działa znacznie wolniej niż skompilowany kod. Tłumacz nie byłby również w stanie skorzystać z optymalizacji specyficznych dla systemu operacyjnego, które mogłyby pozwolić na bardziej wydajne działanie skompilowanego programu.

Wybór kompilatora i interpretera powinien zależeć od tego, czy chcesz mieć przenośność czy wydajność.

Streszczenie:

  1. Tłumacz interpretuje kod bezpośrednio, a kompilator tego nie robi
  2. Tłumacz nie musi być dostępny na maszynie docelowej, a kompilator nie
  3. Zinterpretowany program będzie działał na wielu platformach, podczas gdy skompilowany program nie
  4. Zinterpretowany program będzie działał wolniej niż skompilowany program