ガーベッジコレクション
ガーベッジコレクションとは、プログラム中で動的確保したメモリが不要になったとき、それを自動で解放する仕組みのことを言います。
Lispでは、プログラマにメモリの確保・解放を依存させないように設計されているため、その代わりこのガーベッジコレクションが必要になります。
ただ、ガーベッジコレクションの仕組みによっては、不要なメモリを探索するために処理が重くなったり、どのタイミングでそれが起こるのかが難しかったりと、便利さの影には不便な側面もあります。
ガーベッジコレクションのアルゴリズムにも様々な種類があり、ここではそのいくつかをリストにしてみました。
- Reference Counter
- Mark and Sweep
- Copying
これらのアルゴリズムと新しい考えを混ぜ合わせて、ガーベッジコレクションを実装しているプログラムもあるようなので、実装方法は様々なようです。