バイトコード
特定のOSやハードウェアに依存しない設計
プロセスVMが実行するために設計された実行可能なプログラムのバイト表現
一つ一つの命令が1byte。8bit。
高級言語と比較して
プログラムサイズがコンパクト
だが、命令列からデータを取り出すフェッチ回数が増えがち
処理速度が高速
プログラムサイズがコンパクト
Java, Smalltalkなど
VMはバイトコードを実行する
機械から見る機械語のようなもの
必ずしもバイトコードというわけはない
バイトコードはopcodeとoperandの配列と考えることができる
これらはメモリ上で隣り合って配置される
バイトコードは、domain-specific machineのdomein-specific language(
DSL)である
ドメイン固有のコンテキストのみで意味をなす命令を加えることができる
↓これらはx86-64とかにはない命令
すなわちこの辺も自分でデザインできるというわけか

invokeinterface
がある
これは、インターフェースメソッドを呼び出すための命令
getstatic
クラスの静的フィールドを取得する
new
指定されたクラスの新しいオブジェクトを作成する
putobject
スタックに自分自身をロードし、オブジェクトにメッセージを送信するために送信し、任意のオブジェクトをスタックにロードする
テーブルやタプルへのアクセスと操作のための専用の命令
参考