netail.net
自作フリーソフトや,ゲームに関する雑記を公開してます.
日記はソフトウェア工学の論文ネタが中心です.
最近のお知らせ (古いものはこちら)
2003-04-17 古い日記からの変換データ ▲
_ AOSD 2003 ▲
AOSD2003本会議の論文(の中で興味を引いたもの)はこれで最後.
Mark C. Chu-Carroll, James Wright, Annie T. T. Ying:``Visual Separation of Concerns through Multidimensional Program Storage''
発想は,Separation of Concerns を,「言語的に分けずに,見た目的に分ける」というもの.
必要なのは,クラスより細かい単位でのストレージへの保管,複数のソースフラグメントの集約,動的なフラグメントの選択,フラグメントを認識するエディタ,などなど.
この論文では,「ツールの見た目こんな感じ」というスクリーンショットがやっぱり Eclipse ベースで作られていて,すごく格好よさそうに見える :-)
個人的な好みで言うなら,アスペクトとオブジェクトを分離しておいて,オブジェクトを見るときはアスペクトのコードがあたかもそこにあるかのように(灰色などで)見せる,というのもアリかなーと思うのだが,Visual C# などのコード「折りたたみ」機能などと同様に実装されないものだろうか.
_ AOSD 2003 ▲
だんだん読むのにも疲れてきたのでざっと斜め読み.
Doug Janzen and Kris De Volder:``Navigating and Querying Code Without Getting Lost''
JQuery による検索ツールの実装.Query としてはpackage( ?P, type, ?T) のように"?"で始まる自由変数を満たすノードを見つけてくる Prolog のような言語で書く.パッケージ,型,メソッド,どのメソッドから参照されているか,といった情報が使える.
クエリー結果はツリー構造で表示されるが,その中からさらに検索するときは,ツリーを「接木」していくと検索プロセスが分かる,とか言っているあたりが面白いかも.
ちなみに,プロトタイプは Eclipse ベース.クエリーを直接書くのは面倒だから,何か適当なラッパーを間にかませばすごく便利になりそうな予感.
_ AOSD 2003 ▲
AOSD2003の論文はこれを読んだところであと二つ.もっとも,併設ワークショップの分がさらにあるのだが.
David B. Tucker, Shriam Krishnamurthi:``Pointcuts and Advice in Higher-Order Languages''
Scheme で pointcut 定義や advice の定義をしている論文.pointcutがlambda定義されてるあたりが格好いい.(lambda (jp) (and (eq? f (first jp)) (memq g (rest jp))))とかいう感じで順番に構築していってる様子が説明してある.
この様子を見ている限りでは,Scheme ではかなり頑張れるみたい.ただ,関数型特有の性質について触れてなくて,lambda をカリー化していったときはどうなるのか,とか色々気になるところは残ったまま.今後に期待したい.
_ AOSD2003 (下の続き) ▲
JAsCo のシステムでは,Beans を必要以上に操作しないので,動的にアスペクトの取り外しができる.逆に,アスペクトを回避して元の実装を呼ぶ,という処理は使えなかったりする(そのあたりはコネクタでうまく回避する必要がある).
ツールとして,Visualにコネクタをつないだり外したりする環境もあるらしく,それを使うと格好よくアスペクトの付け替え作業ができそう.何より,動機,モデル,言語要素が理解しやすいのがポイントかも.JAC よりも良くまとまっている気がする.
さりげなく,将来の課題のところに .NET のMSILにも対応してみたいなぁ,とか書いてあって,もし実装されたら一回は使ってみたいかも.
ちょっと気になるところは,コネクタを定義するのが,アスペクトが多くなると意外と大変なのではないか,というところと,アスペクトに対するアスペクトを書くときなんかに怪しげなことが起こったりしないのか言及がないところ.まあ,実際の開発言語として使われるようになったら,もっと利点や弱点が分かるかも.
_ AOSD2003 ▲
論文読みは続く.Davy Suv\acute{e}e, Wim Vanderperren, Viviane Jonckers:``JAsCo: an Aspect-Oriented approach tailored for Component Based Software Development'' コンポーネントベースの世界(とりあえずこの論文ではJava Beansが材料)では,コンポーネント,アスペクトの再利用性は非常に重要.しかし,今のアスペクト指向では,アスペクトの結合基準の記述がアスペクトの定義にくっついていて再利用性が低かったり,コンパイル時に結合するので動的な特性を持ったシステムでは利用できなかったりする. そこで,JAsCo 言語では,アスペクトとして次のように定義する.class AccessManager { hook AccessControl { AccessControl(method(..args)) { executes(method); } replace() { if (p_db.check(currentuser, object) { return method(args); } else { throw new AccessException(); } } } : // other methods and fields, shared by hooks }この hook に対して,コネクタを定義する.
connector PrintAccessControl { AccessManager.AccessControl control = new AccessManager.AccessControl(* Printer.*(*));}ここで,コネクタは結合対象を定義する.また,複数のアスペクトを結合したいときは,ConnectionStrategy というインタフェースを使って「1個目のアスペクトが動作しなければ二つ目も動作しない」といった処理を定義できる. 基本的には動的処理で,バイトコード変換を使って普通の Java Beans にアスペクト用のフックを埋め込み,そのフックに到達するとコネクタ・レジストリを探して,マッチしたらアスペクトを実行させる,といった形になる.
2006-04-17 ▲
_ ビザ申請書を発送 ▲
ようやくinvitation letter が届いたので,大使館へ他の書類とあわせて発送.
3月にあちらの大学で Request for Invitation Letter 手続きが発生(そのために学歴・職歴など聞かれたことに答える)→3月末に送付→4月半ばで到着.
学振側で,3月半ばにPD切り替えの電話連絡→下旬にPD切り替えの書類送付と同時にPD切り替え後の資格証明請求→4月第二週に到着,というのとほぼ並行で何とか進んだ.
10ヶ月ちょっとの間不在になるけれど,科研費の行使は,いちおう学振側としては問題ないらしく,大学側の事務手続きなどのやり方に依存するらしい.
学振のPDは,学振から雇用関係はないけどお金をもらっていて,派遣社員と似て大学で受け入れて勤務しているけれど,今の時点では身分証明書がないという,なかなか微妙な立場.旧東京三菱のグローバルダイレクトの申し込みでは,学振の資格証明を送ってみたものの,電話連絡が来て事情を説明することになった.