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

229
(1): デフォルトの名無しさん [sage] 2015/05/09(土) 18:57:31.49 ID:SYpntI8c(1/3) AAS
バイトコードインタプリタつくっているんだけど
スタックマシンのコンパイラについて
パラメータスタック(データスタック)はヒープ上におくべき?
それともネイティブの領域におくべき?
230
(1): デフォルトの名無しさん [sage] 2015/05/09(土) 19:41:52.28 ID:SYpntI8c(2/3) AAS
>>229
訂正
コンパイラー>仮想機械
232
(1): デフォルトの名無しさん [sage] 2015/05/09(土) 21:02:43.06 ID:SYpntI8c(3/3) AAS
>>231
231(1): デフォルトの名無しさん [sage] 2015/05/09(土) 20:41:51.08 ID:DhZyBtDK(1) AAS
>>230
ネイティブスタックにデータも置くって事だよね?
データスタックは分けておいた方がイロイロ楽だったので列挙
たしかこんなの

GC使う様な実装の時の仕分け
実行パスがJITでコンパイルコードと非コンパイルVMコードの行ったり来たりするとき
例外のスタックトレース(これもJIT時のアレコレあり)
チープマシンにVM仕込むときアセンブラで書くのが楽しい

最後はちげぇけど
自分のVMは典型的なスタックマシンで
パラメータスタック(データスタック)とコールスタックは別です。
そのうちデータスタックをヒープ内におくか
アセンブリでかかれたほうのネイティブの領域におくかってことです。
ネイティブ領域においたほうが実際のアドレスとVM上でのアドレスの変換がないので
速度としては速いのですが
欠点としてバイトコードからスタックを参照することができません
焦点とてしてはそもそもバイトコードからスタックを参照することがあるのかということで、
基本的になければネイティブ領域におこうかとおもっています
これまでつくった経験がないので設計としてどちらがよいかわからずお聞きしました
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 1.249s*