読者です 読者をやめる 読者になる 読者になる

日本ソフトウェア科学会 チュートリアル「Java言語の最新事情」配布資料

.NET

公開されてます.
http://vh.itc.u-tokyo.ac.jp/java/

前者しか読んでませんが,ワイルドカード型の共変・反変についてかなりページを割いて説明してあったりと資料価値は高いかと.
ただ,58 ページの C# についての記述はちょっと気になりますかね.

  • Java 5.0方式: erasure変換
  • C++方式: 1総称クラス(テンプレート)⇒nクラス
    • コード量の増加
  • C#方式: Java 5.0とC++方式のハイブリッド
    • 基本型が引数の場合だけ具体化した定義を生成
  • その他: 実行時まで型引数情報をとっておく
    • reflection を使う[LM*1]
    • 仮想機械を改造する
    • 型情報に相当するインターフェースなどを生成するコンパイル技法[NextGen*2]

んー,少なくとも MS CLR は erasure 変換も「基本型が引数の場合だけ具体化した定義を生成」もやってないと思うんですけどなー どちらかというと「実行時まで型引数情報をとっておく」だと思いますけど.この部分,会場でどういうトークだったのか気になります.
ただ,mscorlib に定義された generics 型と値型に絡む NGen 可能性みたいな話がややこしいのは確か.詳しくはこの辺をどうぞ.

*1:Mirko Viroli and Antonio Natali. Parametric Polymorphism in Java: An Approach to Translation based on Reflective Features. In Proc. OOPSLA2000

*2:Robert Cartwright and Guy L. Steele Jr. Compatibe Genericity with Run-Time Types for Java. In Proc. OOPSLA'98