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
単純にスタックに積むことだけが書かれているのを確認できた。
関連
- KDOC 272: バイトコード変換は型情報が必須ではない。これを確かめた