0

** Не следует ли интерпретация следовать фазе компиляции во время извлечения pgm? ** просто, что происходит, когда мы запускаем программу? Если это разные вещи, то что будет выполнять проверку синтаксиса перед интерпретацией. read python - интерпретируемый язык, а затем проверка утверждений, сделанных тем, что?Связь между компилятором и интерпретатором

ответ

2

У вас есть два варианта:

  • Составитель языки
  • интерпретируемых языков

В скомпилированный язык, вам нужен компилятор, который получает исходный код в качестве входных данных и генерирует двоичный как вывод, который может работать на заданной целевой платформе. Например, C, C++ или Java являются скомпилированными языками. После того как компилятор генерирует двоичный файл , вы выполняете это двоичный код на целевой платформе. Основными этапами процесса компиляции для генерации двоичного кода являются лексический, синтаксический и семантический анализ и генерация кода.

Компилятор - это программа (двоичная), которая запускается на собственной платформе и генерирует код для данной целевой платформы. У вас есть два варианта:

* target_platform == native_platform (native-compiler) 
* target_platform != native_platform (cross-compiler). 

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

Если у вас есть настольный ПК x86_64, ваш компилятор работает на x86_64 и генерирует код, который выполняется на другой платформе (например, JVM), у вас есть кросс-компилятор. Вы должны понимать, что язык Java использует кросс-компилятор, который получает java-язык в качестве входных данных и генерирует байт-код, который запускается на JVM (а не на машине x86_64) в качестве вывода.

Другие кросс-компиляторы, такие как arm-linux-gcc, mips-linux-gcc, ppc-linux-gcc и другие, получают исходный код C в качестве входных данных и генерируют двоичные файлы для запуска на целевой целевой платформе (ARM, MIPS, PPC).

В текстовом редакторе вам не нужен компилятор для генерации кода, поэтому двоичный код не создается в конце процесса. bash и python - интерпретируемые языки. Интерпретатор языка (двоичный файл, установленный на вашем ПК, такой как/bin/bash или/usr/bin/python) получает исходный исходный код, интерпретирует его и выполняет его для генерации вывода. Шаги, выполняемые для интерпретации исходного кода, точно совпадают с последующим компилятором, за исключением того, что интерпретатор не генерирует код, просто выполняет его после анализа.

Я написал статью некоторое время назад, объясняя, как вы можете написать интерпретатор настраиваемого языка с использованием python. Эта статья написана на испанском языке, но весь процесс объясняется шаг за шагом, поэтому вы можете многому научиться, если вы заинтересованы в этом. В конце статьи вы можете найти исходный код для загрузки и тестирования. Исходный код доступен в github. Статья доступна по этому адресу link

Надеюсь, это поможет! :)

+0

Что это значит для этого бинарного? Это байт-код? Так что интерпретатор, который будет проверять синтаксис? Если мы напишем неверный синтаксис, он будет показывать некоторые ошибки правильно? – user104853

+0

Ссылка не работает – user104853

+0

Проверьте связь еще раз, это работает для меня.Я отредактировал свой ответ, чтобы добавить дополнительную информацию. Надеюсь, это поможет вам! – aicastell

 Смежные вопросы

  • Нет связанных вопросов^_^