Я только заметил, что на странице wikipedia Ruby этот язык определяется как интерпретируемый язык.
Я понял, что, возможно, там что-то не хватает на моем фоне.
Я всегда знал разницу между интерпретируемым языком, который не нуждается в компиляторе и компилированном языке (который требует компиляции перед выполнением программ), но что характеризует скриптовый язык?
Является ли Ruby определяемым как скриптовый язык?
Спасибо и простите меня за черный цвет.
Является ли Ruby языком сценариев или интерпретированным языком?
Ответ 1
Вещи не только черно-белые. По крайней мере, они также большие и маленькие, громкие и тихие, синие и оранжевые, серые и серые, длинные и короткие, правильные и неправильные и т.д.
Интерпретировать/скомпилировать - это всего лишь один из способов классифицировать языки и полностью независим от (среди множества других вещей), называете ли вы тот же язык "языком сценариев" или нет. В довершение всего, это также разбитая классификация:
- Интерпретировать/скомпилировать зависит от языковой реализации, а не от языка (это не просто теория, на самом деле существует довольно много языков, для которых существуют как переводчики, так и компиляторы)
- Существуют языковые реализации (многие из них, включая большинство реализаций Ruby), которые являются компиляторами, но "только" компилируются для байт-кода и интерпретируют этот байт-код.
- Существуют также реализации, которые переключаются между интерпретацией и компиляцией на собственный код (JIT-компиляторы).
Вы видите, что реальность - сложный зверь;) Ruby, как упоминалось выше, часто компилируется. Затем результат этой компиляции интерпретируется, по крайней мере, в некоторых случаях - существуют также реализации, которые JIT-компиляция (Rubinius и IIRC JRuby скомпилируется в Java-байт-код через некоторое время). Эталонная реализация давно была компилятором, и IIRC все еще есть. Так интерпретируется или компилируется Ruby? Ни один из термина не имеет смысла, если вы его не определите;)
Но вернемся к вопросу: "Язык сценариев" также не является свойством языка, это зависит от того, как используется язык, а именно: используется ли язык для задач сценариев. Если вы ищете определение, страница Wikipedia на языке сценариев" может помочь (просто не позволяйте им путать вас с примечаниями о деталях реализации, таких как что скрипты обычно интерпретируются). Есть действительно несколько программ, которые используют Ruby для задач сценариев, и есть, несомненно, множество свободно работающих программ Ruby, которые, вероятно, будут квалифицироваться как скрипты (веб-скребок, системное администрирование и т.д.).
Итак да, я думаю, можно назвать Ruby скриптовым языком. Конечно, это не означает, что рубин на веб-приложении rails - это всего лишь script.
Ответ 2
Да.
Подробный ответ:
Язык сценариев обычно используется для управления приложениями, которые часто не написаны на этом языке. Например, сценарии оболочки и т.д. Могут вызывать произвольные консольные приложения.
Ruby - это динамический язык общего назначения, который часто используется для сценариев.
Вы можете выполнять произвольные системные вызовы с использованием обратных ссылок, как показано ниже.
`<system command>`
Есть также много превосходных камней Ruby, таких как Watir и RAutomation для автоматизации веб-и родных графических интерфейсов.
Для определения языка сценариев см. здесь.
Ответ 3
Термин "язык сценариев" очень широк, и он может включать как интерпретируемые, так и скомпилированные языки. Ruby, в частности, может быть скомпилирован или интерпретирован в зависимости от конкретной реализации, которую мы используем - например, JRuby скомпилируется в байт-код, тогда как CRuby (реализация ссылок Ruby) интерпретируется