2015-05-09 5 views
2

Все языки сценариев интерпретируются? Я еще не встречал скомпилированный + скриптовый язык. следующие языки являются как интерпретируемыми, так и языковыми сценариями. какова связь между интерпретируемыми языками и языками сценариев.Все языки сценариев интерпретируются?

JavaScript например, Python, Perl

насчет реверса?

ответ

2

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

Как это делается, это еще один вопрос. Большинство языков сценариев начинают жизнь с чисто интерпретируемой реализации. Неизбежно полезные все приобретают реализацию, которая использует скорость компиляции Just In Time (JIT). Разница в том, что этот JIT выполняется во время запуска скрипта и никогда не создает отдельный вывод. Скрипты по-прежнему являются человекочитаемыми текстовыми файлами, для которых требуется запуск определенного интерпретатора.

Есть несколько интересных примеров языков «на границе». Haskell обычно скомпилирован в свободно стоящий двоичный файл, но может быть запущен как сценарий (по крайней мере, реализация GHC может это сделать.) Java компилируется в двоичный, но не автономный исполняемый файл. Для запуска файлов Java должна присутствовать среда выполнения Java.

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