I'm going through Pat Shaughnessy's Ruby Under a Microscope, and trying to supplement myself with up to date knowledge of how Ruby executes your program. Full disclosure, I have not completed the book yet, but am trying to understand as I go along. At a high level, this is what I understand.
Ruby Code -> Lexical Analysis -> Tokens
Tokens -> Parser -> AST Nodes
AST Node -> Compiler -> YARV Instructions (bytecode)
YARV Instructions -> YARV Interpreter -> ???
??? -> ??? -> Machine Language
My question is what is the output (???) of the YARV Interpreter? Where do these instructions live? As well, what then are the steps necessary to then get that into Machine Language?
If someone could help point me in the right direction or if I have missed anything I would appreciate it!
I've tried reading numerous articles online, but they don't seem to really expand on what happens after YARV Instructions are compiled. I understand that the grammatical instructions of producing YARV instructions live in the main Ruby repo, but then what comes nex?