Что именно делает интерпретатор?
Предположим еще раз, что вы написали программу. Теперь она существует как компьютерный файл : компьютерная программа на самом деле представляет собой фрагмент текста, поэтому исходный код обычно помещается в текстовые файлы .
Примечание. Это должен быть чистый текст , без каких-либо украшений, таких как разные шрифты, цвета, встроенные изображения или другие материалы. Теперь вам нужно вызвать интерпретатор и позволить ему прочитать ваш исходный файл.
Интерпретатор читает исходный код так, как принято в западной культуре: сверху вниз и слева направо. Есть некоторые исключения - они будут рассмотрены позже в курсе.
Прежде всего, интерпретатор проверяет правильность всех последующих строк (используя четыре аспекта, рассмотренные ранее).
Если компилятор обнаруживает ошибку, он немедленно завершает свою работу. Единственным результатом в этом случае является сообщение об ошибке .
Интерпретатор сообщит вам, где находится ошибка и чем она вызвана. Однако эти сообщения могут вводить в заблуждение, поскольку интерпретатор не может следовать вашим точным намерениям и может обнаруживать ошибки на некотором расстоянии от их реальных причин.
Например, если вы попытаетесь использовать объект с неизвестным именем, это вызовет ошибку, но ошибка будет обнаружена в том месте, где происходит попытка использования объекта, а не там, где было введено имя нового объекта.
Другими словами, настоящая причина обычно находится немного раньше в коде, например, в том месте, где вы должны были сообщить интерпретатору, что собираетесь использовать объект с неким именем.
Если строка выглядит хорошо, интерпретатор пытается ее выполнить (примечание: каждая строка обычно выполняется отдельно, поэтому трио «чтение-проверка-выполнение» может повторяться много раз - больше раз, чем фактическое количество строк в исходном файле. , так как некоторые части кода могут выполняться более одного раза).
Также возможно, что значительная часть кода может быть успешно выполнена до того, как интерпретатор обнаружит ошибку. Это нормальное поведение в данной модели выполнения.
Теперь вы можете спросить: что лучше? Модель «компиляция» или модель «интерпретация»? Нет однозначного ответа. Если бы она была, одна из этих моделей давно бы перестала существовать. У обеих есть свои преимущества и свои недостатки.