«前の日記(2005-04-01) 最新 次の日記(2005-04-04)» 編集

netail.net

自作フリーソフトや,ゲームに関する雑記を公開してます.
日記はソフトウェア工学の論文ネタが中心です.

最近のお知らせ (古いものはこちら)


2005-04-03 [長年日記]

_ [お出かけ]明石

私用で明石へ行ったので,ついでに駅前で明石焼きを食べる.5年前か6年前に姫路で食べて以来.

さらについでに,本屋で小栗左多里,トニーラズロ著「ダーリンの頭ン中」を購入.

_ [論文]属性ベースの(AspectJの)Join Pointで指定すると問題が起きる例

Donal Lafferty: Avoiding Incorrect and Unpredictable Behavior with Attribute-bassed Crosscutting.

Proceedings of ACP4IS, Chicago, Illinois, March 2005.

.NET用に言語非依存のAOPフレームワークを作っている人らしく,AspectJなどのメソッドの属性などでポイントカットを指定する方法だと,SML.NETなど一部の言語で,ポイントカットにマッチしてしまうような作業用メソッドがコンパイラによって生成されてしまうことがある,というもの.で,アトリビュート(メタデータ)をメソッドごとに付加した方法だったら,Join Pointが勝手に増加しないので無難だよ,というふうに主張している.

_ [論文]Pointcut記述のマッチ可能性の計算量

Karl J. Lieberherr, Jeffrey Palm, Ravi Sundaram: Expressiveness and Complexity of Crosscut Languages.

Proceedings FOAL, Chicago, Illinois, March 2005.

AspectJにおけるポイントカットやDemeterJにおけるインスタンス探索を,コールグラフやインスタンス関係のグラフからマッチ対象を選択する "Selector" として考える.このとき,Selectorが特定のノードに常にマッチする場所を見つけられるか,1つもマッチしないことが調べられるか,といったことが最適化時に重要となる.

で,アルゴリズムの計算量を調べたら,基本的には,intersectionとnegationを使わなければ,多項式時間でよく,それ以外でも一部多項式時間で解ける問題があるらしい(それ以外はNP完全).

面白いところは,AspectJとDemeterJとをグラフ選択問題として共通化してるところ.AspectJで,コールグラフ上で

call(void f()) & !cflow(void g())
のようなメソッド選択の式を,DemeterJを使って
from main() bypassing g() to f()
のように置き換えることで negation や intersection を取り除いて多項式時間の問題に帰着できるらしい.

お名前:
E-mail:
右の画像に書かれている文字列を入力してください:
コメント: