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