Разница между компилятором и интерпретатором

Компилятор против интерпретатора

При написании программ на языке высокого уровня компьютер не сможет его понять. Чтобы его можно было использовать, вам нужно преобразовать его в то, что понимает компьютер. Именно здесь приходят компиляторы и интерпретаторы, так как они выполняют одну и ту же функцию. Основное различие между компилятором и интерпретатором заключается в том, что они выполняют код. С помощью интерпретатора код выполняется сразу, а интерпретатор передает интерпретированный код на компьютер. Для сравнения, компилятор не выполняет код. Вместо этого он записывает готовый код на диск. Код, записанный на диск, может быть выполнен в любое время.

Основное различие между интерпретатором и компилятором порождает другое. Поскольку при запуске программы необходим интерпретатор, вам необходимо установить интерпретатор, если вы хотите запустить программу на своем компьютере. Это не тот случай с компилятором. После того, как программа скомпилирована, вам просто нужна скомпилированная программа, а не компилятор или оригинальный код.

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

Недостатком использования переводчика являются дополнительные издержки. Интерпретатору потребуются некоторые вычислительные мощности, и каждая строка кода будет интерпретироваться во время выполнения. Это не тот случай, когда у вас есть скомпилированная программа, потому что операционная система может читать ее напрямую и выполнять каждую команду. Дополнительный шаг интерпретации кода делает интерпретируемую программу значительно медленнее, чем скомпилированный код. Интерпретатор также не сможет воспользоваться преимуществами специфических для ОС оптимизаций, которые позволят скомпилированной программе работать более эффективно..

Выбор между компилятором и интерпретатором должен зависеть от того, хотите ли вы переносимости или производительности.

Резюме:

  1. Интерпретатор непосредственно выполняет код, а компилятор - нет
  2. На целевой машине должен быть доступен интерпретатор, а компилятор не
  3. Интерпретированная программа будет работать на нескольких платформах, в то время как скомпилированная программа не будет
  4. Интерпретируемая программа будет работать медленнее, чем скомпилированная программа