Я знаю, что это старо, но, учитывая, что я не могу комментировать (повтор), я хочу добавить уточняющий ответ:
Интерпретатор используется для интерпретации сценария (будь то VBScript, javascript, python или любого другого сценария) в отдельные инструкции. Эти инструкции могут быть в форме машинного кода или промежуточного представления (которое может использовать ОС или другая программа). Некоторые интерпретаторы созданы для чего-то более близкого к языку ассемблера, а исходный код более или менее выполняется напрямую.
Большинство современных языков сценариев (например, Python, Perl, Ruby) интерпретируются как промежуточное представление или промежуточное представление и в скомпилированный (также называемый машинный, объектный) код. Важное отличие (по сравнению со скомпилированными языками) состоит в том, что интерпретатор не берет весь код и не переводит его значение в машинный код, он берет каждую строку за раз и интерпретирует его значение как отдельную единицу. .
Думайте об этом как о разнице между переводом целого эссе с английского на русский (скомпилированный код) и переводом каждого предложения в эссе и переводом его непосредственно (интерпретированный код). Вы можете получить аналогичный эффект, но результат не будет идентичным. Что еще более важно, перевод целого эссе как общего объема работы требует гораздо больше усилий, чем выполнение одного предложения за раз в качестве отдельной единицы, но русскоязычным будет намного легче читать весь перевод, чем довольно неуклюжий версия предложения. Отсюда и компромисс между компиляцией кода и кодом интерпретации.
Источник: https://en.wikipedia.org/wiki/Interpreter_(computing), опыт