最後の枠のセッションしかメモ取ってなかったのでそれだけ
Featherweight Java の漸進的型付けと Groovy の紹介
by kyon_mm
- Article:
- Featherweight Java のための漸進的型付け
- http://www.fos.kuis.kyoto-u.ac.jp/~igarashi/papers/pdf/FJgrad-PPL08.pdf
- OCaml的な型推論ではなく動的方検査と静的型検査の両立によって徐々に性的方月コードへ変化させることができる
- 現状Javaには導入されていないが、Groovyで似たようなことができる
単語の整理
- Featherweight Java
- 漸進的型付け
- 静的型付き、動的型付きのいいところを両立させるための仕組み
- プログラマがそれぞれを行う箇所を選択できる
- 書きながら動的な部分を徐々に静的に移行させられる
- Groovy
論文の概要
- 漸進的型付けを導入したFJをFJ?(FJ^?)と定義
- FJ? -> FJrefl(リフレクションを加えた体系)
- ?型: wildcard
- 動的に検査される
- 実行時の?型: リフレクションを用いる、コンパイルが通っても実行時エラーになることもある
Groovy
- 漸進的型付け
- 基本的に動的型検査、コンストラクタにannotationをつけて静的型検査を指定する
- FJ?における?型はGroovyでは変数
- FJ?: ?型のオブジェクトに大してFJreflでなんちゃら
- GroovyではMOP (Meta Object Protocol)の仕組みを持ってる
- @CompileStatic, @TypeCheck
- @TypeChekは静的型検査するだけ
- @CompileStaticは動的型検査が行われないようにする (ドキュメントなどでは "bypassing Groovy meta object protocol" などと書かれている)