Ruby的YARV的输出是什么?



我正在阅读Pat Shaughnessy的《显微镜下的Ruby》,并试图用Ruby如何执行程序的最新知识来补充自己。完全披露,我还没有完成这本书,但我正在努力理解我的过程。在高层次上,这就是我所理解的。

Ruby Code -> Lexical Analysis -> Tokens
Tokens -> Parser -> AST Nodes
AST Node -> Compiler -> YARV Instructions (bytecode)
YARV Instructions -> YARV Interpreter -> ???
??? -> ??? -> Machine Language

我的问题是YARV解释器的输出是什么?这些指示在哪里?那么,将其转化为机器语言需要采取哪些步骤呢?

如果有人能帮我指明正确的方向,或者如果我错过了什么,我将不胜感激!

我试着在网上阅读了很多文章,但它们似乎并没有真正扩展到YARV指令编译后会发生什么。我知道产生YARV指令的语法指令存在于主要的Ruby repo中,但接下来会发生什么?

我的问题是YARV解释器的输出是什么?

没有输出。解释器不生成输出。它解释(另一个词是"执行"(代码。

更确切地说:解释器的输出是解释器正在运行的程序的输出。所以,如果你写一个程序,应该打印";你好,世界;则运行该程序的解释器的输出将是打印";你好,世界;到控制台。

这些指令位于何处?

在RAM中。

那么,将其转化为机器语言所需的步骤是什么?

没有。口译员进行口译。它不生成代码。将代码从一种语言翻译成另一种语言的东西被称为"翻译";编译器";。

最新更新