Все ли скриптовые языки интерпретируются?
Все ли скриптовые языки интерпретируются? Я еще не сталкивался с языком скомпилированных + сценариев. следующие языки являются как интерпретируемыми, так и скриптовыми. какая связь между интерпретируемыми языками и языками сценариев.
например, JavaScript, Python, Perl
как насчет обратного?
1 ответ
По определению, язык сценариев делает то, что не существует отдельной стадии компиляции. Языку сценариев всегда нужна копия его интерпретатора для запуска, в то время как скомпилированному языку не нужен компилятор для выполнения результирующего двоичного файла. Например, в C мы сначала скомпилировали бы в собственный исполняемый файл, а затем запустили этот исполняемый файл. На языке сценариев мы вводим сценарий в виде текстового файла, и он немедленно исполняется.
Как это сделать - другой вопрос. Большинство скриптовых языков начинают жизнь с чисто интерпретированной реализации. Все полезные неизбежно приобретают реализацию, в которой используется скорость компиляции Just In Time(JIT). Разница в том, что этот JIT выполняется во время выполнения скрипта и никогда не производит отдельный вывод. Скрипты по-прежнему являются читаемыми текстовыми файлами, для работы которых требуется некоторый интерпретатор.
Есть несколько интересных примеров языков "на границе". Haskell обычно компилируется в автономный двоичный файл, но может также запускаться как скрипт (по крайней мере, реализация GHC может сделать это.) Java компилируется в двоичный файл, но не в автономный исполняемый файл. Для запуска файлов Java должна присутствовать среда выполнения Java.