Разлика между съставител и преводач

Съставител срещу тълкувател

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

Основната разлика между интерпретатора и компилатора поражда друга. Тъй като интерпретаторът е необходим, когато стартирате програма, трябва да имате инсталиран интерпретатор, ако искате да изпълните програмата на вашата машина. Това не е така с компилатор. След като програмата е съставена, просто се нуждаете от съставената програма, а не от компилатора или оригиналния код.

Предимство от използването на интерпретатор, а не компилатор е възможността за изпълнение на програмата на компютри, работещи с различни операционни системи; при положение, че имате подходящия преводач. Когато компилирате програма, тя ще бъде само за конкретна операционна система и няма да работи на други. За да го накарате да работи на друга операционна система, трябва да оптимизирате кода си за тази операционна система и да го компилирате отново.

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

Изборът между компилатор и интерпретатор трябва да зависи от това дали искате преносимост или производителност.

Резюме:

  1. Преводач директно изпълнява кода, докато компилаторът не го прави
  2. В целевата машина трябва да има преводач, докато компилаторът не е
  3. Интерпретираната програма ще работи на множество платформи, докато компилирана програма няма
  4. Интерпретираната програма ще работи по-бавно от компилирана програма