kmizuの日記

プログラミングや形式言語に関係のあることを書いたり書かなかったり。

Genericsはイレイジャによる実装の方が単純か

自分は逆に「Elaser だったからこそ単純になってる」んじゃないのかなぁとは思います。ランタイムには Generics を考えなくて良いですし。基本的には。

http://d.hatena.ne.jp/SiroKuro/20080506/1210034867

うーん。確かに、イレイジャにすればランタイム(JVM)はGenericsを意識しなくて良いというのは正しいと思うんですが、そのメリットというのは、イレイジャに限った話ではないですよね。例えば、具体的な型パラメータごとにコードを複製するという方式でも(互換性の問題を別にすれば)、JVMレベルではGenericsを意識する必要は無いですよね。もっとも型ごとにコードを複製するという方式だと、コードサイズが爆発するとか、Genericな型同士のサブタイプ関係をどう扱うか、とか別の問題はあると思いますが。

あと、仮にイレイジャによって(コンパイラ/ランタイムの)実装が単純になるとしても、言語仕様の方はおそらくより複雑になりますよね(イレイジャが同じ型になるメソッドはオーバーロードできない、などの、実装に起因する制約が増えるため)。