netail.net
自作フリーソフトや,ゲームに関する雑記を公開してます.
日記はソフトウェア工学の論文ネタが中心です.
最近のお知らせ (古いものはこちら)
2003-10-24 古い日記からの変換データ [長年日記] ▲
_ 論文 ▲
Kasper B. Graversen and Kasper {\O}sterbye:Implementation of a Role Language for Object-Specific Dynamic Separation of Concerns,AOSD '03 Workshop ``SPLAT''を読んだ.
"Role" を動的にオブジェクトに貼り付けてメソッド定義などを置き換えるDelegation Layer, JAC 系のアプローチ.Role 間は,継承関係がない場合は完全に独立.貼り付けられた複数の Role は相互に影響を与えない.super や self 同様,貼り付けられた対象を示すintrinsic という参照を使うらしい.
たまたま継承オブジェクトと貼り付けられたロールが同じ名前のメソッドを追加していたら名前の上書きが起こるみたいだけど,そのあたりはあまり本質的ではないので置いておくとして,どのロールとして参照されているかによってオブジェクトの振る舞いが変わることになる.この点はとても面白い.そのかわり,オブジェクトを管理する側は大変そう.
この論文の筆者らは,このChameleon モデルについて他にも論文を書いている様子.
_ 論文 ▲
オブジェクト間の制約とかを書いたり解決できたりするのかなーとちょっと期待して Constraint Programming 関係の文献をあさってみたが,結局,Object-Oriented Constraint Programming とか言ってる人が少し関連していることをしているように見えるけれど実は整理される対象がオブジェクトなだけ?で制約を一般的なプログラム上で使うのはしんどそう.
せっかく読んだので論文名だけメモ.Samir Ouis, Narendra Jussien and Patrice Boizumault:k-relevant explanations for constraint programming
_ 論文 ▲
R\acute{e}mi Douence and Narendra Jussien:Non-intrusive constraint solver enhancements
単純な Constraint Solver +アスペクトで拡張していこうというショートペーパー.バックトラックなどをアスペクトとして実装することで拡張性なんかを確保できる……のかな?
_ 論文 ▲
オブジェクト制約言語に関して色々調べてみる.
中島 震:制約伝播機構を内蔵するオブジェクト指向言語: COOL. 情報処理学会論文誌 Vol.30, No.1, January (1989).
オブジェクトの状態が変化したら命題を評価してその命題に依存した他の命題を評価して,……というようにたとえば回路の入力ピンの値が1箇所変化したら順番にそれを伝播させていく,というような制約記述を Lisp ベースで導入している.矛盾解消機構を持っていて,命題の出力が処理キューに並んでいる命題値と矛盾した場合に勝手にその基となった命題を削除して解消したりするみたい.勝手に制約が置き換えられていくことになるので本当に動くのかなぁ,と不思議.
Hon Wai Chun:A Methodology for Object-Oriented Constraint ProgrammingAPSEC 97, P.116ILOG を使って分析を行い,UML のクラス図などの上で制約を記述し,ILOG 記述に落としていくという話.
C++ プログラム上でどう使っていくか,みたいな話っぽいのだが,オブジェクト間の制約が,必要なオブジェクトが一式揃う前から適用されてしまうような気がするのだけど初期化タイミングなんかではどう扱うんだろう.コンストラクタがすごく頑張るんだろうか…….
_ 論文 ▲
OOPSLA 2003 間近ということで ML に流れてきた論文.Jim Hugunin: The Next Steps For Aspect-Oriented Programming Languages(in Java)
今後の研究の方向性について述べた Position Paper.
(1) 適切な分割コンパイル,静的なチェック(declare errorなど)とロード時 weave との扱いなどに関する問題
(2) Pointcut の表現範囲 -- たとえば dataflow の拡張
(3) 特定ドメインに対応したアスペクト,再利用可能なアスペクトライブラリの構築
(4) 拡張可能なコンパイラなど,様々な開発ツールといったところ.
確かに,そのくらいの方向性だという気はする.(1) と (4), (2) と (3) は相互に絡んでいくんだろうか…….