我刚刚注意到在Ruby的维基百科页面中,这种语言被定义为解释性语言。
我明白我的背景中可能缺少一些东西。
我一直都知道不需要编译器的解释型语言和编译型语言(需要在程序执行之前进行编译)之间的区别,但是脚本语言有什么特点呢?
Ruby 可以定义为脚本语言吗?
谢谢你并原谅我的停电
事情不仅仅是黑白的。至少,它们也有大和小、响亮和安静、蓝色和橙色、灰色和灰色、长和短、对和错等等。
解释/编译只是对语言进行分类的一种方式,并且它完全独立于(以及无数其他事物)您是否将同一种语言称为“脚本语言”。最重要的是,它也是一个破碎的分类:
- 解释/编译取决于语言的实现,而不是语言(这不仅仅是理论,确实有相当多的语言同时存在解释器和编译器)
- 有一些语言实现(很多,包括大多数 Ruby 实现)are编译器,但“仅”编译为字节码并解释该字节码。
- 还有一些实现可以在解释和编译为本机代码(JIT 编译器)之间切换。
你看,现实是一头复杂的野兽;)如上所述,Ruby 经常被编译。然后解释该编译的输出,至少在某些情况下是这样 - 还有 JIT 编译的实现(Rubinius 和 IIRC JRuby 会在一段时间后编译为 Java 字节码)。参考实现长期以来一直是编译器,IIRC 仍然如此。那么 Ruby 是解释型还是编译型?除非您定义它,否则这两个术语都没有意义;)
但回到问题:“脚本语言”也不是语言的属性,它取决于语言的使用方式 - 即该语言是否用于脚本任务。如果您正在寻找定义,请参阅维基百科页面“脚本语言 http://en.wikipedia.org/wiki/Scripting” 可能会有所帮助(只是不要让它们对实现细节的注释(例如通常解释脚本)感到困惑)。确实有一些程序使用 Ruby 来执行脚本任务,并且毫无疑问有大量独立的 Ruby 程序这可能有资格作为脚本(网络抓取、系统管理等)。
So yes,我想人们可以称Ruby为一种脚本语言。当然,这并不意味着 Ruby on Rails Web 应用程序只是一个脚本。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)