私は、学習経験と高校卒業時の履歴書の両方のために、最近の週末に独自のスクリプト言語を書き始めました。基本的な型 (null、boolean、number、および string) で変数を解析し、演算子の優先順位を使用して数式を解析し、基本的なマークとスイープ ガベージ コレクターを配置できます (マーク/スイープ コレクターの完了後)。世代別ガベージ コレクタを実装します。ナイーブ マーク/スイープはあまり高速ではないことはわかっています)。ただし、ガベージ コレクターの参照オブジェクトを格納する方法がわかりません。今のところ、メモリへのポインタとマークされているかどうかを格納するクラス GCObject があります。リンクされたリストをそれに保存する必要がありますか ' クラス内のオブジェクトを参照していますか? 私は他の言語のガベージ コレクターを見てきましたが、GCObject ごとの参照のリンクされたリストが表示されないため、混乱しています。
TLDR: 他のオブジェクトによって参照されるオブジェクトをマーク アンド スイープ ガベージ コレクタに格納するにはどうすればよいですか? オブジェクトのリンクされたリストをすべての GCObjects に保存するだけですか?
みんなありがとう。