AVMに関するメモ
(1) 落書き
- AIntは16bit以上を保証
- 任意のポインタは、セグメント番号+オフセット情報に変換できる。逆変換も可能。
- オフセット情報は、構造体のメンバIDであって、実際のメモリアドレスとは全く関係ない。
- AIntの途中とかをさすポインタは生成できない。許さない。
- 全メモリの列挙が可能。だからガーベージコレクタとかは簡単に作れる。
- sizeofは許さないけど、オフセットid的なsizeofなら許せる。
- これらの構造体情報やメモリ管理情報を使わないのなら簡略化できる。
- rebirthカウントは必要だろうか?
- rebirthカウントは、結局はポインタの重複を避けるための拡張ビット数でもあると言える。
- rebirthカウントは使うかどうかを設定できれば便利だろう。
- 全メモリ列挙をdemoしたら相当に壮観だろうなあ。
- アクセスはすべてアクセス関数を使う。ローカル変数値も全部見える。プログラムカウンタも?
- わかった、セグメント番号の下位Nbitは、リサイクル対象にすればいいんだ。そして上位はrebirthカウントにすればいい。Nやトータルビット数をいくつにするかは、実行環境が自由に決めればいいだけだ。rebirthカウントをどのようにマスクしても、同じようにマスクする限りにおいて、大きな問題が生じることはない。
- なんとなれば、rebirthカウントはプログラムからは不可視であってもいいかもしれない。常に不可視なのではなく、不可視にできるモードがあればいいかな。
|