netail.net
自作フリーソフトや,ゲームに関する雑記を公開してます.
日記はソフトウェア工学の論文ネタが中心です.
最近のお知らせ (古いものはこちら)
2005-09-15 [長年日記] ▲
_ [work] ESS2005 ▲
山下記念研究賞の表彰が ESS のプログラムにあるらしいと聞いて,出張日程などちょっと相談.研究会からは今のところ何も連絡ないんですけど….
連絡がないといえば,APSEC2005のNotificationも昨日の予定のはずなのに来てない.
_ [論文] クラス間の関連のインスタンスを扱える言語の提案 ▲
Gavin Bierman, Alisdair Wren: First-class Relationships in an Object-Oriented Language.
Proceedings of the 12th International Workshop on Foundations of Object-Oriented Languages (FOOL 2005).
偶然発見するまで知らなかったけど,POPL併設のワークショップらしい.
ERモデルのように,オブジェクト間の関連にもちゃんとクラスを定義してインスタンスとして操作できるような言語を定義してみましたという論文.
relationship は,クラス宣言とほぼ同様に宣言するものの,先頭に relationship R from A to B
というように名前 R 以外に対象クラスを指定する.そうすると,クラス A の任意のインスタンスに対して,a.R += new B();
のように関連を追加できる.
面白いなーと思ったのは,関連の継承.relationship R2 extends R
と宣言したら,a.R2 += b;
とすると,a.R でも a.R2 でもインスタンス b にアクセスできるが,他の関連 a.R3 などからは見えない.
また,関連に参加できるインスタンス数をfrom one Foo to many Bar
のようにして設定できるようにしている(数値も使用可能).ただし,このような関連についての制約は,どの時点から守られるのか(インスタンス生成から,いつまでに関連を設定しないといけないか)が微妙な気はするが.
AOPのインタータイプ宣言で参照を持たせる場合と,コードは似ている気がする.個人的には,関連自体が双方向になったり,関連そのものにもメソッドなどを持たせたりできれば,何か色々面白い使い方ができそうな気がした(双方向の関連だと参照管理のオーバーヘッド大きそうだけど).