Скомпилированный исполняемый файл должен содержать анализатор , способный читать внешний программный код . Код программы не обязательно должен выглядеть как C или Python или xyz - это могут быть любые описательные данные, которые подходят для рассматриваемой цели. Например, шведский или азбука Морзе.
Код внешней программы должен иметь синтаксис , чтобы синтаксический анализатор понимал его, как он читает его символ за символом. Синтаксис может описывать (и код может содержать) идентификаторы, числовые значения, операторы и т . Д.
Парсер исправлен (скомпилирован), но работает с гибким внешним кодом.
Скомпилированный исполняемый файл должен иметь внутренний API для соответствующей функциональности. так что парсер может выполнять действия. Скорее всего, также должен быть (двунаправленный) доступ к внутренним данным исполняемого файла, или синтаксический анализатор должен обеспечивать какое-то хранение и ведение данных.
Синтаксический анализатор может читать внешний программный код при запуске исполняемого файла , или он может читать (части) его ad hoc , или он может перечитывать его для каждого кадра (будет неэффективно), или код может даже быть напечатан вручную и отправлено парсеру, когда он готовится (например: «переместить блок X вперед на 5 шагов» [enter]).
По сути, внешний код не является фиксированным - он может меняться в любой год, день или минуту, но, тем не менее, исполняемый файл не нужно перекомпилировать. Изменяется только результирующее поведение, размещаемое исполняемым файлом.
Текст, который вы сейчас читаете, интерпретируется (вроде и даже больше, если он был произнесен), потому что вы «исполняете» его в своем мозгу, читая его, не зная, что говорит следующее предложение (или даже если это возможно, хитро меняется в настоящее время). В отличие от переполнения стека (предварительно), скомпилировавшего всю историю в байт-код в вашем мозгу, который затем выполняет ее - и, конечно, она больше не может измениться.
Продолжающееся явление - интерпретация. Сценарии - это только акт создания дескрипции или написания . Все компьютерное кодирование - это imo-скриптинг - мы описываем то, что хотим сделать. Слово «сценарий» имеет несколько измененный смысл, но так будет хорошо. Мы знаем, что имеем в виду.
В интерпретируемых языках нет абсолютно ничего необычного, и это ни в коем случае не спорный термин . Их существует множество, и некоторые из самых старых интерпретируются как скомпилированные. В интерпретируемом языке можно, например, напечатать вручную:
sock = Socket.New (AddressFamily.InterNetwork, SocketType.Stream ProtocolType.Tcp) [ENTER]
... а потом пойти на 30 ... нет, 45-минутный перерыв на кофе :-). При возврате «носок» существует и готов к дальнейшему использованию, печатая больше вручную или продолжая автоматизацию интерпретатора.