Подтвердить что ты не робот

Является ли Ruby языком сценариев или интерпретированным языком?

Я только заметил, что на странице wikipedia Ruby этот язык определяется как интерпретируемый язык.
Я понял, что, возможно, там что-то не хватает на моем фоне.
Я всегда знал разницу между интерпретируемым языком, который не нуждается в компиляторе и компилированном языке (который требует компиляции перед выполнением программ), но что характеризует скриптовый язык?
Является ли Ruby определяемым как скриптовый язык?

Спасибо и простите меня за черный цвет.

4b9b3361

Ответ 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) интерпретируется