netail.net
自作フリーソフトや,ゲームに関する雑記を公開してます.
日記はソフトウェア工学の論文ネタが中心です.
最近のお知らせ (古いものはこちら)
2006-10-09 [長年日記] ▲
_ [論文] AOASIA2006関連その1:Obliviousness ▲
ぼちぼちAOASIA関連の話題を整理してます.この記事自体は,正確にはAOASIA前日の別ワークショップで話された内容です.とりあえず研究関連ってことで論文カテゴリに入れておきます.
Obliviousness というのは,「アスペクトを結合するコード(クラスなど)はアスペクトの存在を知らない」といった意味なのですが,これが「クラスのコードは,アスペクトのコードへの参照を含んではいけない」という構文レベルでの話なのか,「アスペクトがなくても動くようなコードを書く」「クラスの開発者はアスペクトの存在を知らなく良い?」とかいう意味的な話なのか,というところが実は曖昧でした.
結局,使ってる人によって意味合いが違っていたようで(おかげでだいぶ議論が混乱していましたが),ベースコード中ではアスペクトの要素を参照しないという構文的な意味が AOP においては必須の性質であろう,意味的な Obliviousness の達成は望ましいが必須ではない,という形で整理されました.
意味的な Obliviousness としては,たとえば性能計測のような完全に後付けのアスペクトは,Obliviousness を達成する必要がありそうです.また,クラスから見た場合,別アプリケーションで再利用したいクラス群というのはアスペクトがあってもなくても動く必要があるでしょうし,アプリケーション固有のクラスは,そのアプリケーション内にいるアスペクトのことを多少意識したコードになっていても問題ない気がします.今のところ,構文的な参照関係以上の明確な指針はありません.