-1

编程语言是否有解释器和编译器? 如果是的话,怎么样?RUBY中的编译器和解释器

**我认为Ruby有编译器和解释器**

感谢

+2

可能的重复[是否Ruby真的是一种解释语言,如果它的所有实现都编译成字节码?](http://stackoverflow.com/questions/717490/is-ruby-really-an-interpreted-language-if -all-of-its-implementation-are-compiled) – Chuck 2011-04-26 22:56:10

回答

1

一些语言既可以编译成特定于平台的运行时可执行文件和解释。例如,Ruby可以被多个解释器,本机ruby,ree等解释,也可以被JRuby“编译”为本机java代码(这不完全是本机可执行文件)。

+0

或OCaml,它通常编译为字节码或本地机器码。 – Amadan 2011-04-27 06:46:36

4

当然,你可以兼得。除了Java,Python和现在的Ruby的明显例子之外,如果你真的想的话,可能为编写一个本地编译器。我认为那里有一个糟糕的Ruby编译器。相反,你也可以为C编写一个解释器,我认为这里有一些解释器。

为什么像Ruby这样的动态语言难以编写编译器并为C使用解释器存在技术上的原因,这就造成了C语言比Ruby编程语言的主要优势。这并不意味着它不能完成。

简而言之,您可以编写任何语言和平台(本机或虚拟机)的编译器或解释器,或者您可以获得或编译出规范。