KDOC 287: バイトコードにメモリサイズが書かれていないことを確認する

この文書のステータス

  • 作成
    • 2024-11-15 貴島
  • レビュー
    • 2024-11-19 貴島

概要

仮想マシンの機械語をバイトコードと呼ぶ。バイトコードは抽象的なマシンなので、メモリを番地レベルで考えない。メモリサイズが書かれてないのを実際のバイトコードを見て確認する。

puts RubyVM::InstructionSequence.compile('[1, 2, 3, "a", "b"]').disasm
== disasm: #<ISeq:<compiled>@<compiled>:1 (1,0)-(1,19)> (catch: FALSE)
0000 putobject_INT2FIX_1_                                             (   1)[Li]
0001 putobject                              2
0003 putobject                              3
0005 putstring                              "a"
0007 putstring                              "b"
0009 newarray                               5
0011 leave

単純にスタックに積むことだけが書かれているのを確認できた。

参考

関連