ガベージコレクション
ガベージコレクション(garbage collection; GC)とは、プログラムが動的に確保したメモリ領域のうち、不要になった領域を自動的に解放する機能である。「ガベージコレクション」を直訳すれば「ゴミ収集」となる。1959年ごろ、LISPにおける問題を解決するためジョン・マッカーシーによって発明された(※Recursive functions of symbolic expressions and their computation by machine, Part I)(※RECURSIVE FUNCTIONS OF SYMBOLIC EXPRESSIONS AND THEIR COMPUTATION BY MACHINE (Part I) (12-May-1998))。メモリの断片化を解消する機能と併せてガベージコレクションと呼ぶ場合もあるが、厳密にはそのような機能はコンパクションと呼び、区別される。実現手法の一つであるコピーGCでは、ガベージコレクションと共にコンパクションも行われる仕組みになっている。また、ガベージコレクションを行う主体はガベージコレクタと呼ばれる。ガベージコレクタはタスクやスレッドとして実装される場合が多い。なお、似たようなものにスマートポインタ(smart pointer)があるが、これはライブラリとして提供されるガベージコレクションの一種である。

1 動作
2 特徴
3 実装
4 GCを実装した言語・処理系の例
5 ライブラリ
6 分散ガベージコレクション
7 世代別ガベージコレクション
8 脚注
9 関連項目
10 外部リンク