Найти тему

Странные компиляторы и интерпретаторы

Оглавление

Если перейти сразу к сути, то интерпретаторы и компиляторы - такие программы, которые переводят программы, написанные на языках программирования в понятный для машины код, то есть двоичный.

Но раз они оба выполняют одну и ту же функцию, то зачем они существуют вдвоём? С этим мы сейчас как раз и разберемся.

Компилятор

Компилятор - программа, которая переводит программу из одного языка в другой, путём взятия программы целиком на обработку. Нужна именно полная программа, так как компьютер понимает только двоичный код.

-2

Главная задача компилятора - преобразовать программу в машинный код, который в дальнейшем будет распознаваться компьютером.

У такого вида программы есть ряд преимуществ и недостатков.

Плюсы:

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

Минусы:

  • Так как переводится вся программа сразу, то потребляется достаточно много оперативной памяти.
  • Исходный код должен быть всегда полностью верным для выходного исполняемого файла
  • В случае с компилятором невозможно поменять программу, не вернувшись к исходному коду.

Интерпретатор

Интерпретатор - программа, которая преобразует каждый програмный оператор в машинный код. Что-то вроде программы, которая идёт по списку инструкции без предварительной компиляции.

-3

Плюсы:

  • Занимает минимальное количество памяти, так как обрабатывает по 1 инструкции за раз.
  • Интерпретатор сильно облегчает работу с исходным кодом

Минусы:

  • Каждый раз в процессе выполнения программы тратится время на интерпретацию, что может сказаться на времени исполнения.

Если немного порассуждать и сделать выводы, то можно понять, что компилятор больше годится под крупные проекты, где тебе придётся много тестировать. Чтобы не затягивать с временем запуска, достаточно один раз скомпилировать, чтобы оно работало в дальнейшем. С интерпретатором же другая история. Он больше подходит под небольшие программы, где не слишком сильно будет заметно время интерпретации при каждом запуске программы.

К сожалению, или к счастью, вам не нужно будет выбирать конкретный вид обработки программы, за вас это сделает выбор вашего языка, так как каждый язык тесно связан со своим компилятором или интерпретатором. В теории, любой язык может обрабатываться обеими программами, но я такого не видел.