Съставител срещу тълкувател
Когато пишете програми на език на високо ниво, компютърът няма да може да го разбере. За да бъде използваем, трябва да го преобразувате в нещо, което компютърът разбира. Тук влизат компилатори и интерпретатори, тъй като и двамата изпълняват една и съща функция. Основната разлика между компилатор и интерпретатор е, когато те изпълняват кода. С преводач кодът се изпълнява веднага с превода, предаващ интерпретирания код на компютъра. За сравнение компилаторът не изпълнява кода. Вместо това записва готовия код в диска. След това кодът, записан на диска, може да бъде изпълнен по всяко време.
Основната разлика между интерпретатора и компилатора поражда друга. Тъй като интерпретаторът е необходим, когато стартирате програма, трябва да имате инсталиран интерпретатор, ако искате да изпълните програмата на вашата машина. Това не е така с компилатор. След като програмата е съставена, просто се нуждаете от съставената програма, а не от компилатора или оригиналния код.
Предимство от използването на интерпретатор, а не компилатор е възможността за изпълнение на програмата на компютри, работещи с различни операционни системи; при положение, че имате подходящия преводач. Когато компилирате програма, тя ще бъде само за конкретна операционна система и няма да работи на други. За да го накарате да работи на друга операционна система, трябва да оптимизирате кода си за тази операционна система и да го компилирате отново.
Недостатъкът на използването на преводач е добавената режийни разходи. Интерпретаторът ще се нуждае от известна процесова мощност и всеки ред код ще бъде интерпретиран по време на изпълнение. Това не е така, когато имате компилирана програма, тъй като операционната система може да я чете директно и да изпълнява всяка команда. Допълнителната стъпка на интерпретиране на код прави интерпретираната програма да работи значително по-бавно от компилирания код. Преводачът също не би могъл да се възползва от специфичните за ОС оптимизации, които могат да позволят на компилирана програма да работи по-ефективно.
Изборът между компилатор и интерпретатор трябва да зависи от това дали искате преносимост или производителност.
Резюме: