Opal看起来像是一个很好的库,但我不确定它是否有真正的用途。你如何使用它?或者这只是一个好奇?
发布于 2021-02-20 18:40:53
Ruby是一种编程语言。编程语言是一组抽象的数学规则和约束。它是一个想法,一个规范,一张纸。
你可以用编程语言编写程序,但如果你所拥有的只是编程语言本身,那么你能做的就是阅读它们,研究它们,证明它们的性质等等,但你不能运行它们(除了在你的头脑里或用笔和纸)。
然而,这并不会使编程语言变得无用。有很多编程语言从来没有实现过,它们只是为了编写程序并证明这些程序的属性,或者研究编程语言本身的属性而创建的。
然而,Ruby的目的是作为一种实用的编程语言。用Ruby编写的程序是用来执行的,而不是用纸和笔。
这意味着我们需要另一块拼图,我们需要所谓的编程语言实现。
编程语言实现本身就是用某种编程语言编写的程序(可以是同一种编程语言,也可以是不同的编程语言),它“理解”用编程语言编写的程序,并用它们做以下两件事之一:
Ruby实际上有相当多的编程语言实现:
Opal只是Ruby的另一种编程语言实现。在这方面,它与其他任何一个都没有什么不同。它们都有自己的长处、短处、用例和利基。
与列表中的其他编译器相比,Opal有些独特,因为它是一个纯粹的编译器。XRuby和Ruby.NET的工作方式是一样的,但它们已经不再被开发。上面列表中的所有其他代码在某些时候至少以某种形式使用解释器。例如,虽然YARV从不解释Ruby,但它总是将Ruby编译为YARV字节码,通常在将其传递给JIT编译器之前,它至少解释几次YARV字节码。
因此,使用Opal的原因与使用任何其他Ruby实现的原因相同:您有一个Ruby程序,并且希望运行它。为了运行它,您需要一个Ruby实现。
https://stackoverflow.com/questions/66289680
复制相似问题