C でインタープリターを作成していますが、参照カウントに問題があります。
それぞれvalue
(値のインタープリターの表現です...)にはrefcount
0が割り当てられます。スタックに追加されると、refcount
.
value
スタックをオフにする唯一の方法はポップすることですが、これは問題を引き起こします。私のポッピング関数は、value
ポップされた を返しますが、refcount
が 0 で値を破棄すると、それを返すことができなくなります。
おそらくチェックを別の場所に置くべきだと思いrefcount
ますが、ポップ機能を使用する場所がたくさんあるので、それは見苦しく思えます。
この問題を回避するにはどうすればよいですか? この場合、実際の GC アルゴリズムを実装する必要がありますか?