Давайте рассмотрим основные различия между компилятором и интерпретатором. И компилятор, и интерпретатор действуют по-разному во многих аспектах.
Компилятор против интерпретатора
КОМПИЛЬЕР:
- Компилятор принимает вся программа в качестве входных данных. Он работает со всей программой одновременно
- Он генерирует промежуточный объектный код (машинный код)
- Он выполняет операторы условного управления быстрее, чем интерпретатор
- Требуется больше памяти (поскольку создается объектный код)
- Скомпилированная программа не не нужно компилировать каждый раз
- Ошибки отображаются после проверки всей программы
- Языки программирования, использующие компиляторы: C, C++
ИНТЕРПРЕТЕР:
- Интерпретатор принимает в качестве входных данных по одному оператору за раз. Работает построчно
- Не генерирует промежуточный код (машинный код)
- Выполняет операторы условного контроля намного медленнее, чем компилятор
- Меньше требуется памяти. Он не генерирует промежуточный объектный код
- Каждый раз, когда программа более высокого уровня преобразуется в программу более низкого уровня
- Ошибки отображаются для каждой интерпретируемой инструкции (если есть)
- Языки программирования, использующие интерпретатор: Visual Basic Script, Ruby , Перл
КОМПИЛЬЕР | ИНТЕРПРЕТЕР |
---|---|
Компилятор принимает на вход всю программу. Он работает сразу со всей программой | Interpreter принимает в качестве входных данных по одному оператору за раз. Он работает построчно |
Генерирует промежуточный объектный код (машинный код) | Не генерирует промежуточный код (машинный код) |
Выполняет условное операторы управления быстрее, чем интерпретатор | Он выполняет операторы условного управления намного медленнее, чем компилятор |
Требуется больше памяти (поскольку генерируется объектный код ) | Требования к памяти меньше. Он не генерирует промежуточный объектный код |
Скомпилированную программу не нужно компилировать каждый раз | Каждый раз более высокий уровень программа преобразуется в программу более низкого уровня |
Ошибки отображаются после проверки всей программы | Ошибки отображаются для каждой интерпретируемой инструкции ( если есть) |
Языки программирования, использующие компиляторы: C, C++ | Языки программирования, использующие интерпретатор: Visual Basic Script, Ruby , Перлтаблица> TAG: qa |