Урок 1. Интерпретатор и компилятор

Интерпретатор и компилятор – это инструменты позволяющие преобразовать исходный код программы в код понятный машине.

Схема работы компилятора:

  1. берёт исходный код программы и анализирует его;
  2. преобразует программный код в машинный код;
  3. создаёт файл с байт кодом (зачастую это exe файл);
  4. передаёт запускной файл ОС.

Схема работы интерпретатора:

  1. берёт исходный код программы и анализирует его;
  2. интерпретирует программный код в машинный код и сразу его выполняет.

Основная разница между ними состоит в следующем:

  • Компилятор обрабатывает сразу весь программный код после чего выдаёт результат, интерпретатор же берет одну инструкцию, преобразует и выполняет ее, а затем берет следующую инструкцию.
  • Компилятор генерирует отчет об ошибках после преобразования, а интерпретатор при нахождении ошибки прекращает свою работу.
  • Компилятор по сравнению с интерпретатором требует больше времени для анализа и обработки программного кода.
  • Созданный компилятор запускной файл программы будет работать быстрее чем запуск той же программы через интерпретатор.

У интерпретаторов и компиляторов есть свои преимущества (+) и недостатки (-).

Для компилятора это:
+ откомпилированные компилятором программы работают быстрее, поскольку ненужно заново проходить этап анализа и преобразования исходного кода в машинный код.
+ отсутствие надобности компилятора на компьютере пользователя;
+ генерируется отчёт об ошибках;
- программа имеет зависимость от ОС (если программа откомпилирована под одну ОС, то в другой она работать не будет);
- после запуска скомпилированной программы ОС практически теряет контроль над ней. ОС
получает управление лишь по инициативе выполняющейся программы в те моменты, когда необходимо выполнить системную функцию (записать данные в файл, прочитать значение таймера и т.д.). Если скомпилированная программа самостоятельно (без помощи ОС) обратится к ресурсам компьютера, никто не в силах ей помешать

Для интерпретатора:
- для запуска программы требуется наличие интерпретатора;
- скорость работы программы ниже в сравнении со скомпилированной программой;
+ кроссплатформенность.
+ имеют более совершенные и наглядные средства диагностики ошибок в исходных кодах.
+ меньшие размеры кода по сравнению с машинным кодом, полученным после компиляторов.

%D1%81%D1%82%D1%80%D0%B5%D0%BB%D0%BA%D0%B0%20%D0%B2%D0%BB%D0%B5%D0%B2%D0%BE%202 предыдущая статья | следующая статья %D1%81%D1%82%D1%80%D0%B5%D0%BB%D0%BA%D0%B0%20%D0%B2%D0%BF%D1%80%D0%B0%D0%B2%D0%BE%202