村山@NETGENEです.
>> Ruby, Python, Java の実装は,オブジェクトの構造体に型情報を記録してい
>> ます.したがって C で書かれているにもかかわらず,exact GC を使うことが
>> できます.
>つまり exact GC を採用することが原理的に可能だという以上のことは言って
>いません.
少し補足すると,
少なくともJavaにおいては,どのようなGCを使うかは完全に実装依存です.
保守的GCを使っても構わないし,exact GCを使っても構いません.たしか
ChaiVMなどは保守的GCを使っていました.
GCアルゴリズムと言語仕様とは独立したものであり,わざわざ言語仕様で
GCのアルゴリズムを規定するような真似は,普通はしないでしょう.
ただし,既に述べた様に,保守的GCには過剰追跡やメモリフラグメンテーションと
いう欠点があるので,Javaで使われるのは稀です.正確なGCが高いパフォーマンス
で実現可能である以上は,普通は正確なGCを使うでしょう.CやC++では効率の良い
正確なGCの実現が不可能,或いは極めて困難であるのとは対照的です.
--
村山敏清 株式会社ネットジーン 〒164-0001
東京都中野区中野3-33-3 インツ中野ビル 5F
E-mail:murayama@....jp
TEL:(03)5328-3670 FAX:(03)5328-3673
http://www.netgene.co.jp/