首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Opal有什么意义?

使用Opal有什么意义?
EN

Stack Overflow用户
提问于 2021-02-20 16:52:09
回答 1查看 62关注 0票数 0

Opal看起来像是一个很好的库,但我不确定它是否有真正的用途。你如何使用它?或者这只是一个好奇?

EN

回答 1

Stack Overflow用户

发布于 2021-02-20 18:40:53

Ruby是一种编程语言。编程语言是一组抽象的数学规则和约束。它是一个想法,一个规范,一张纸。

你可以用编程语言编写程序,但如果你所拥有的只是编程语言本身,那么你能做的就是阅读它们,研究它们,证明它们的性质等等,但你不能运行它们(除了在你的头脑里或用笔和纸)。

然而,这并不会使编程语言变得无用。有很多编程语言从来没有实现过,它们只是为了编写程序并证明这些程序的属性,或者研究编程语言本身的属性而创建的。

然而,Ruby的目的是作为一种实用的编程语言。用Ruby编写的程序是用来执行的,而不是用纸和笔。

这意味着我们需要另一块拼图,我们需要所谓的编程语言实现。

编程语言实现本身就是用某种编程语言编写的程序(可以是同一种编程语言,也可以是不同的编程语言),它“理解”用编程语言编写的程序,并用它们做以下两件事之一:

  • It“运行”它们,这意味着它根据编程语言的规范执行程序的副作用和操作。这种实现称为解释器。

  • 它将它们“翻译”成不同的编程语言,即它将用源编程语言编写的程序翻译成用目标编程语言编写的语义等价的程序,以便用用于输出编程语言的解释器解释得到的输出程序产生与用用于输入编程语言的解释器解释源输入程序相同的结果和执行相同的副作用。

Ruby实际上有相当多的编程语言实现:

  • YARV
  • MRuby
  • TruffleRuby
  • JRuby
  • Rubinius
  • Artichoke (仍在development)
  • Ruby+OMR中(不确定这是否仍是developed)
  • IronRuby (不再积极开发)

Opal只是Ruby的另一种编程语言实现。在这方面,它与其他任何一个都没有什么不同。它们都有自己的长处、短处、用例和利基。

与列表中的其他编译器相比,Opal有些独特,因为它是一个纯粹的编译器。XRuby和Ruby.NET的工作方式是一样的,但它们已经不再被开发。上面列表中的所有其他代码在某些时候至少以某种形式使用解释器。例如,虽然YARV从不解释Ruby,但它总是将Ruby编译为YARV字节码,通常在将其传递给JIT编译器之前,它至少解释几次YARV字节码。

因此,使用Opal的原因与使用任何其他Ruby实现的原因相同:您有一个Ruby程序,并且希望运行它。为了运行它,您需要一个Ruby实现。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66289680

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档