Что превращает VBScript в машинный код? - PullRequest
2 голосов
/ 28 февраля 2012

Скомпилированные языки, такие как C # и java, имеют как раз своевременные компиляторы, которые преобразуют их (из байтового кода) в машинный код (0 и 1).Как интерпретируемый язык, такой как VBScript, преобразуется в машинный код?Это сделано операционной системой?

Ответы [ 4 ]

2 голосов
/ 28 февраля 2012

Они не обязательно преобразуются в машинный код (и часто не делают).

Интерпретатор этой программы выполняет соответствующие действия в соответствии с требованиями программы.

Некоторые интерпретаторы могут генерировать машинный код (используя JIT-компиляторы), другие могут придерживаться простой интерпретации сценария.

0 голосов
/ 03 марта 2017

Обращаясь к этой статье Википедии VB Script ,

  1. Когда VB-скрипт выполняется в браузере, он использует vbscript.dll для интерпретации VB-скрипта.
  2. Когда файл сценария VB выполняется из командной строки или командного файла, тогда cscript.exe используется для интерпретации сценария VB.
  3. Когда сценарий VB используется самой ОС Windows для различных целей, таких как отображение сообщений об ошибках или желтый цветцветные уведомления в правом углу панели задач, затем они интерпретируются с использованием wscript.exe, который является службой Windows.
0 голосов
/ 13 января 2016

Это ответ Я искал.Подобно движку javascript, раньше был движок vbscript, который преобразовывал читаемый человеком код в машинный код.Этот движок vbscript аналогичен компилятору JIT в CLR и JVM.Только то, что он преобразует непосредственно из читаемого человеком кода в машинный код.В отличие от C # с промежуточным байтовым кодом.

0 голосов
/ 12 января 2016

Я знаю, что это старо, но, учитывая, что я не могу комментировать (повтор), я хочу добавить уточняющий ответ:

Интерпретатор используется для интерпретации сценария (будь то VBScript, javascript, python или любого другого сценария) в отдельные инструкции. Эти инструкции могут быть в форме машинного кода или промежуточного представления (которое может использовать ОС или другая программа). Некоторые интерпретаторы созданы для чего-то более близкого к языку ассемблера, а исходный код более или менее выполняется напрямую.

Большинство современных языков сценариев (например, Python, Perl, Ruby) интерпретируются как промежуточное представление или промежуточное представление и в скомпилированный (также называемый машинный, объектный) код. Важное отличие (по сравнению со скомпилированными языками) состоит в том, что интерпретатор не берет весь код и не переводит его значение в машинный код, он берет каждую строку за раз и интерпретирует его значение как отдельную единицу. .

Думайте об этом как о разнице между переводом целого эссе с английского на русский (скомпилированный код) и переводом каждого предложения в эссе и переводом его непосредственно (интерпретированный код). Вы можете получить аналогичный эффект, но результат не будет идентичным. Что еще более важно, перевод целого эссе как общего объема работы требует гораздо больше усилий, чем выполнение одного предложения за раз в качестве отдельной единицы, но русскоязычным будет намного легче читать весь перевод, чем довольно неуклюжий версия предложения. Отсюда и компромисс между компиляцией кода и кодом интерпретации.

Источник: https://en.wikipedia.org/wiki/Interpreter_(computing), опыт

...