Ruby - это язык сценариев или интерпретируемый язык?

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

Спасибо и прости меня за провал

3 ответа

Решение

Вещи не просто черно-белые. По крайней мере, они также большие и маленькие, громкие и тихие, синие и оранжевые, серые и серые, длинные и короткие, правильные и неправильные и т. Д.

Интерпретированный / скомпилированный - это только один из способов классификации языков, и он полностью независим от (среди множества других вещей) того, называете ли вы тот же язык "языком сценариев" или нет. В довершение всего, это также неправильная классификация:

  • Интерпретация / компиляция зависит от языковой реализации, а не от языка (это не просто теория, на самом деле существует довольно много языков, для которых существуют как интерпретаторы, так и компиляторы)
  • Существуют языковые реализации (многие из них, включая большинство реализаций Ruby), которые являются компиляторами, но "только" компилируются в байт-код и интерпретируют этот байт-код.
  • Существуют также реализации, которые переключаются между интерпретацией и компиляцией в собственный код (JIT-компиляторы).

Видите ли, реальность - это сложный зверь;) Как уже упоминалось выше, Ruby часто компилируется. Выходные данные этой компиляции затем интерпретируются, по крайней мере, в некоторых случаях - есть также реализации, которые JIT-компилирует (Rubinius и IIRC JRuby компилируют в байт-код Java через некоторое время). Эталонная реализация была компилятором в течение длительного времени, а IIRC все еще существует. Так Ruby интерпретируется или компилируется? Ни один термин не имеет смысла, если вы не определите его;)

Но вернемся к вопросу: "Язык сценариев" также не является свойством языка, он зависит от того, как язык используется, а именно от того, используется ли язык для задач сценариев. Если вы ищете определение, может помочь страница Википедии на " языке сценариев" (только не позволяйте им путать вас с примечаниями о деталях реализации, таких как сценарии, которые обычно интерпретируются). Действительно, есть несколько программ, которые используют Ruby для выполнения задач сценариев, и, несомненно, существует множество автономных Ruby-программ, которые, скорее всего, будут рассматриваться как сценарии (очистка веб-страниц, системное администрирование и т. Д.).

Так что да, я думаю, можно назвать Ruby языком сценариев. Конечно, это не означает, что веб-приложение ruby ​​on rails - это просто скрипт.

Да.

Подробный ответ:

Язык сценариев обычно используется для управления приложениями, которые часто не написаны на этом языке. Например, сценарии оболочки и т. Д. Могут вызывать произвольные консольные приложения.

Ruby - это динамический язык общего назначения, который часто используется для написания сценариев.

Вы можете совершать произвольные системные вызовы, используя обратную нотацию, как показано ниже.

`<system command>`

Есть также много отличных драгоценных камней Ruby, таких как Watir и RAutomation для автоматизации веб-сайтов и собственных графических интерфейсов.

Для определения языка сценариев, смотрите здесь.

Термин "язык сценариев" очень широк и может включать как интерпретируемые, так и скомпилированные языки. В частности, Ruby может компилироваться или интерпретироваться в зависимости от того, какую конкретную реализацию мы используем - например, JRuby компилируется в байт-код, тогда как CRuby (эталонная реализация Ruby) интерпретируется

Другие вопросы по тегам