1
A
回答
2
这将显示YARV指令
code = <<END
x=1
x.to_s
puts x
END
puts RubyVM::InstructionSequence.compile(code).disasm
如果您想了解更多,你可以看看这本书红宝石在显微镜下
这将是输出
1.9.3-p547 :012 > code = <<END
1.9.3-p547 :013"> x=1
1.9.3-p547 :014"> x.to_s
1.9.3-p547 :015"> puts x
1.9.3-p547 :016"> END
=> "x=1\nx.to_s\nputs x\n"
1.9.3-p547 :017 > puts RubyVM::InstructionSequence.compile(code).disasm
== disasm: <RubyVM::InstructionSequence:<compiled>@<compiled>>==========
local table (size: 2, argc: 0 [opts: 0, rest: -1, post: 0, block: -1] s1)
[ 2] x
0000 trace 1 ( 1)
0002 putobject 1
0004 setlocal x
0006 trace 1 ( 2)
0008 getlocal x
0010 send :to_s, 0, nil, 0, <ic:0>
0016 pop
0017 trace 1 ( 3)
0019 putself
0020 getlocal x
0022 send :puts, 1, nil, 8, <ic:1>
0028 leave
2
相关问题
- 1. 访问Nashorn生成的字节码
- 2. 由Rails生成的Ruby源代码?
- 3. 由rails生成的ruby源代码
- 4. 如何访问在rails上由ruby生成的sqlite3表rvm install
- 5. 访问由XSD生成的类
- 6. 访问由stringify生成的json
- 7. iphone md5生成由Ruby on Rails生成的不同字符串
- 8. 如何重新组装由javap生成的java字节码?
- 9. 由SOAP2ObjC生成的代码问题
- 10. 生成访问代码
- 11. 在仿真代码中访问Verilog genvar生成的实例
- 12. CGLIB AspectJ的字节代码生成
- 13. 可以使用哪个库/程序来生成Java字节码?
- 14. Ruby中的程序生成算法
- 15. 访问代码生成的TextView资源
- 16. Ruby on Rails生成路由
- 17. 访问由加载程序加载的ListView委托的成员
- 18. 从WSDL生成的java代码中生成访问器方法
- 19. 如何让Reflection.Emit程序集访问生成程序集中的内部成员?
- 20. 由nvcc编译器为CUDA程序生成的中间代码
- 21. Firebase - 当您不知道父键的值时访问子节点 - 由childByAutoId()生成
- 22. Javassist似乎生成无效的字段访问代码
- 23. 怎样写由字节
- 24. Ruby实例变量访问
- 25. 试图抓住C字节码...... GNU/gcc可以生成像Clang/LLVM这样的C字节码吗?
- 26. 访问字节
- 27. Ruby on Rails教程 - 生成问题
- 28. 由jQuery生成的PHP foreach样式表
- 29. 如何访问WCF中的字段RIA生成的Silverlight应用程序
- 30. 使用JCodeModel生成java字节码
即时通讯使用MRI,我想将MRI将我的示例代码转换为字节或直接解释它 –
我不认为MRI正在编译为字节码。看到这个答案:http://stackoverflow.com/questions/717490/is-ruby-really-an-interpreted-language-if-all-of-its-implementations-are-compile – davidrac