netail.net
自作フリーソフトや,ゲームに関する雑記を公開してます.
日記はソフトウェア工学の論文ネタが中心です.
最近のお知らせ (古いものはこちら)
2006-04-24 [長年日記] ▲
_ [論文] cflow 内部での context exposure の束縛の提案 ▲
SPLAT 2006 の論文のメモの残り.
Remi Douence: Relational Aspects for Context Passing Beyond Stack Inspection. Proceedings of SPLAT 2006.
cflow の中で,target や this などの値を保存しておけるようにしようという提案.「p.doSomething() を実行している間に呼ばれた q.getData() 」に対してアドバイスを動かして,p や q への参照を獲得できるようにする.
有用性については,たぶん便利だろうな,と感じるのだけど,オーバーヘッドが大変なことになりそう.cflowのマッチしかたにもよるだろうけど,「p → q → x」のような呼び出しで (p, x) のペアと (q, x) のペアの両方がポイントカットにマッチしたらどうするんだ,とか気になる.
_ [論文] アスペクト間の相互作用の自動合成 ▲
Anis Charfi, Michel Riveill, Mireille Blay-Fornarino, Anne-Marie Pinna-Dery: Transparent Dynamic Aspect Composition. Proceedings of SPLAT 2006.
アスペクトの定義である「Pointcut → Advice」が複数与えられたとき,
それらが一緒に動くときの動作順序を自動合成するという手法の提案
(説明を聞くまで自動合成だと気づかなかった).
1つのポイントカットに複数のアドバイスが同時に動くとき,
「pointcut → advice 」ルールをすべて満たすような動作順序を出力するらしい.
考えていた出力と違ってたら declare precedence とか変更すればいいのか,と
質問してみたが,
ポイントカット定義が正しければちゃんと適切な出力が出るはずだ,というような
微妙な答えが返ってきただけだった.あまり考えてなかったのかもしれない.
_ [論文] MATLAB で AOP ▲
Joao M.P. Cardoso, Joao M. Fernandes, Miguel P. Monteiro: Adding Aspect-Oriented Features to MATLAB. Proceedings of SPLAT 2006.
SPLAT の中ではちょっと変り種.MATLABで,数値計算をするときの変数の型をデフォルトの数値型ではなく,別途記述するアスペクトによって固定小数点とかに変更できるようにしたという話(それ以外も計算途中のモニタリングとかも分離しているが).
この「型を外部から変える」という発想が珍しくて,それでプログラムを壊してしまうのではないか,というような否定的な意見もあったけれど,この手法の場合は数値型のインタフェース(使える演算の種類)は変わらず内部的な表現が変わっているだけだからいいのではないか,という意見もあった.