「コンパイラ・スクリプトエンジン」相談室16 (648レス)
前次1-
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん

531
(2): 2016/04/29(金)10:04 ID:GdtJdaFL(1) AAS
バイトコードのテキストってのが若干意味不明だが
バイトコードならアセンブル(バイナリ化)しておかないか普通

a = b + c * d
を二分木のASTで
(st (ldptr local[0]) (add (ld local[1]) (mul (ld local[2]) (ld local[3]))))
みたいに格納して、ポインタ1つあたり64 bits、ノード構造体のサイズが24 bytesと仮定して
glibc mallocを使うことを仮定して全部で32 bytes * 7 = 224 bytesのヒープを消費する。

一方でレジスタ型VMを仮定して、簡単の為に1命令32 bits固定長とすると、例えば
ldptr r0, local[0] / ld r1, local[1] / ld r2, local[2] / ld r3, local[3] /
mul r4, r2, r3 / add r5, r1, r4 / st r0, r5
省7
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.026s