我刚才注意到在Ruby的维基百科页面中,这种语言被定义为解释语言
我理解可能在我的背景中缺少一些东西。
我总是知道不需要编译器的解释语言和编译语言(需要在程序执行之前编译)之间的区别,但是什么是脚本语言的特征?
Ruby可以定义为脚本语言吗?
谢谢你,原谅我的黑暗
答案 0 :(得分:43)
事情不仅仅是黑与白。至少,它们既大又小,又大又安静,蓝色和橙色,灰色和灰色,长短,对与错等。
解释/编译只是对语言进行分类的一种方式,它完全独立于(无数其他事物中)是否将同一种语言称为“脚本语言”。最重要的是,它也是一个破碎的分类:
你知道,现实是一个复杂的野兽;)如上所述,Ruby经常被编译。然后解释该编译的输出,至少在某些情况下 - 还有JIT编译的实现(Rubinius和IIRC JRuby在一段时间后编译成Java字节码)。参考实现已经成为编译器很长一段时间了,IIRC仍然是。 Ruby是解释还是编译?除非你定义它,否则这两个术语都没有意义;)
但回到问题:“脚本语言”也不是语言的属性,它取决于语言的使用方式 - 即语言是否用于编写脚本任务。如果您正在寻找定义,那么“Scripting language”上的维基百科页面可能会有所帮助(只是不要让他们将实际细节上的注释混淆,例如通常会解释脚本)。确实有一些程序使用Ruby来执行脚本任务,毫无疑问,有许多独立的Ruby程序可能有资格作为脚本(网页抓取,系统管理等)。
所以是,我想可以将Ruby称为脚本语言。当然,这并不意味着rails web app上的ruby只是一个脚本。
答案 1 :(得分:4)
是
详细回复:
脚本语言通常用于控制通常不使用该语言编写的应用程序。例如,shell脚本等可以调用任意控制台应用程序。
Ruby是一种通用的动态语言,经常用于编写脚本。
您可以使用如下的反引号表示法进行任意系统调用。
`<system command>`
还有许多优秀的Ruby宝石,例如Watir和RAutomation,用于自动化Web和本机GUI。
有关脚本语言的定义,请参阅here。
答案 2 :(得分:3)
术语“脚本语言”非常广泛,它可以包括解释语言和编译语言。特别是Ruby,可能会根据我们正在使用的特定实现进行编译或解释 - 例如,JRuby被编译为字节码,而CRuby(Ruby的参考实现)被解释