diff --git a/content/mimiumの中間表現を考える.md b/content/mimiumの中間表現を考える.md index e2347960..10b6e51f 100644 --- a/content/mimiumの中間表現を考える.md +++ b/content/mimiumの中間表現を考える.md @@ -113,6 +113,12 @@ delayはどうしておくかというと、最初の8バイトは現在のリ 中間表現では関数呼び出し、即値の読み込みはラベル使ってやるので十分かあ そうなるとローカルの名前リネームは必要 -state_sizeの保存には結局コールツリーを辿る必要が出てくる? +VM自体のstate_sizeの保存には結局コールツリーを辿る必要が出てくる? pushfeedoffsetでバイトオフセットの値をトレースするためには結局applyの式を辿る必要はある +コールツリーのトラバースをし始めるとワンパスコンパイラとしての旨みがなくなる + +feedはlambdaに閉じ込められてletrecにbindされてるのがちょっと面倒 + +まあでも結局ユーザー層に隠蔽するにはここで静的解析するしかないのか +あれ、でもこの静的解析って結局多段階でいうところのstage 0 の評価に相当するやつなのでは