«前7日分 最新 次7日分» 追記

netail.net

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

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


2004-11-20 古い日記からの変換データ [長年日記]

_ ボジョレー・ヌーボー

去年飲んだフランク・サンカンのを探してみたけど見つからなかったので,今年はピエール・アンドレのにしてみた.


2004-11-19 古い日記からの変換データ [長年日記]

_ [論文]モデルとコードの対応付け

Xiaofang Zhang, Michal Young, John H. E. F. Lasseter:Refining Code-Design Mapping with Flow Analysis.Proceedings of the 12th FSE (FSE2004), pp.231-240,Oct.31-Nov.6, 2004, Newport Beach, CA, USA.

モデルとコードとのマッピングを取るときに,モデル要素間の use 関係と実装コード間の use 関係,モデル要素とコードとの部分的なマッピングが与えられたら,残りの対応付けが済んでいないコードが与えられたモデル間の use 関係(制約)を満たすようにモデル要素へマッピングできるかどうかを調べるという話.

ソース改変などで不完全になってしまったモデルを再び完全状態に戻すといった使い道ができそう.逆に,マッピングが少ない状態からスタートすると,最初に与えるモデルがエラーを含んでいる場合などにはその影響が大きく波及してしまうらしい.


2004-11-18 古い日記からの変換データ [長年日記]

_ OACIS

IT連携フォーラム OACIS 第7回シンポジウムに参加.鳥居先生が喋るのを見たのは実は初めて?

中ノ島センターに行ったのも初めてだったりするが,市バスの75系統だと,かなり近くまで行けて楽だった.ただ,バス自体の本数がない(12時代は12:31の1本だけ)ので少し使いにくい.次に行くときには忘れてそうだけど.


2004-11-17 古い日記からの変換データ [長年日記]

_ [work][Java]Ant with Eclipse

久しぶりに Ant の build.xml を書いてみた.JAR を生成する処理とソースコードおよび周辺ファイルのZIP アーカイブ作成処理だが,それぞれ [Run]-[External Tools] から Ant build を使うと,ボタン一つで両方の処理を実行できてかなりお手軽な感じになってきた.

user.dir が build.xml を配置しているディレクトリになるようで,eclipse.home は Eclipse インストール先を指すようだし,プロジェクト自体のディレクトリを指してくれるものが見つからなくてちょっと微妙な感じ.プロジェクトのトップディレクトリに配置しろということか.

_ [論文]イベントパターンを使ったアスペクト記述

Robert J. Walker, Kevin Viggers:Implementing Protocols via Declarative Event Patterns.Proceedings of the 12th FSE (FSE2004), pp.159-169,Oct.31-Nov.6, 2004, Newport Beach, CA, USA.

FTPプロトコルでのユーザ認証を題材にした論文で,pointcut でイベントを定義する以外に,tracecut というイベント列(pointcut を使って正規表現ぽく指定する)で処理の実行を記述できるようにしたもの.実行が済んだ部分にアクセスする history(tracecut) という述語を使って,過去のイベント情報(システムの状態?)をアスペクトの記述の基準にできる.

状態を保存する部分が自動化されていて便利だ,という主張ぽい.イベントベースのAOP,AspectJ などと比べて表現力,追跡性,拡張性,理解容易性が全部「高い」と言ってるあたりは少し「?」だが,個人的にはけっこうよさげな手法のように見える.うまくベースのイベントと切り分けられるものについては,AspectJ よりもうまくいきそう.

_ [論文]Pointcut のマッチの検査

Shriram Krishnamurthi, Kathi Fisler, Michael Greenberg:Verifying Aspect Advice Modularity.Proceedings of the 12th FSE (FSE2004), pp.137-146,Oct.31-Nov.6, 2004, Newport Beach, CA, USA.

基本的には pointcut をオートマトンと考えて(受理状態になると関連付けられたアドバイスが実行される),メソッド呼び出し列などのプログラムの状態に対してpointcut がいつ受理されるかどうかを判定しつつ,CTL によって記述した性質をテストするらしい.

使い道としては,pointcut の状態を見ることができるので,複数の類似した pointcut の性質の違いを調べたりするのに使えそうな気はするが….

_ [論文]良い反例の出力

Sagar Chaki, Alex Groce, Ofer Strichman:Explaining Abstract Counterexamples.Proceedings of the 12th FSE (FSE2004), pp.73-82,Oct.31-Nov.6, 2004, Newport Beach, CA, USA.

モデル上でエラーとなるような反例を見つけて,実行が成功するような実行系列の例と「距離」が近いような実行系列の例として出力したいねという話.

一方の実行系列を他方へと変換するような基本操作の数が,実行系列間の距離となる.ここで,実行系列は,状態と,実行する命令の組の系列らしい.

発想はそのうち参考にすることになるかも?

_ [論文]動的解析による不変条件の推定

Jeff H. Perkins, Michael D. Ernst:Efficient Incremental Algorithms for Dynamic Detection of Likely Invariants.Proceedings of the 12th FSE (FSE2004), pp.23-32,Oct.31-Nov.6, 2004, Newport Beach, CA, USA.

実行時の各変数の状態から,不変条件を推定するという話."Incremental" なのは,最初の実行で成立した条件を仮に全部不変条件だと思っておいて,反例が見つかった時点でそれを捨てていくというもの.

条件がプログラムのどの場所で成立しているかによって,広い範囲で成立する条件とその部分範囲でのみ成立する条件とをツリー階層で管理することで,反例が見つかった瞬間にツリー間で条件式を移動して,「条件が成立している範囲」の情報を調整する形になっている.

この論文の主旨としては Incremental なアルゴリズムに対して適用したいくつかの最適化方針に対してパフォーマンスを測ってみたというところ.

時間の単位が1000〜20000秒となっているので,実用かどうかというとちょっと怪しげな側面もあるが,重要な場所だけ絞って判定するとか工夫すればそれなりの結果は得られるのかな?と思わないこともない.ただ,サンプルが多くないと「そのテストケースでの不変条件」という微妙な出力を得ることになるので,使い道としては微妙か.


2004-11-16 古い日記からの変換データ [長年日記]

_ [論文]モデルとコードの対応調査

Alexander Egyed:Resolving Uncertainties during Trace Analysis.Proceedings of the 12th FSE (FSE2004), pp.3-12,Oct.31-Nov.6, 2004, Newport Beach, CA, USA.

Trace Analysis って何だろうと思っていたら,実行履歴の解析ではなくて,モデルとソースコードの対応(いわゆる追跡性)の解析だった.

モデルとコードの対応を included/shared/excluded で記述して,Footprint Graph というものでrefine していくらしい."M is F" 以外に "M isAtLeast F" や "M isAtMost F" のように持ってる知識を適度に定式化して入力として与えるらしい.

今のところ,こちらの研究との関連は特にないようなので,置いておく.

_ [Java]表明オプション

今日のはまり.実行時に "-ea" オプションを有効にしないと assert 文は検査されない.


2004-11-15 古い日記からの変換データ [長年日記]

_ [論文][work]アスペクトの振る舞いの認識

Martin Rinard, Alexandru Salcianu, and Suhabe Bugrara:A Classification System and Analysis for Aspect-Oriented Programs.Proceedings of the 12th FSE (FSE2004), pp.147-158,Oct.31-Nov.6, 2004, Newport Beach, CA, USA.

関連研究.アスペクトがシステムに与える振る舞いの影響をAugmentation (アスペクトは常に実行される),Narrowing (ある条件下でアスペクトは実行される),Replacement (static crosscutting などシステムの一部を置換するもの),Combination (その他の振る舞い)に分類して,またデータに関する影響をOrthogonal (クラスとアスペクトは別個のフィールドを触る),Independent (一方が書き込んだフィールドには,他方は書き込まない),Observation (メソッドだけが書き込み,アドバイスが読むだけ),Actuation (アスペクトが書き込み,メソッド側は読むだけ),Interference(アスペクトもメソッドも同じものに書き込む)に分類し,あとは依存関係解析によって,メソッド-アドバイス間,アドバイス-アドバイス間での影響を調べようというもの.

フィールドの集合を適当に抽象的な「structure フィールド」といった名前を付けたものにマッピングしているようで,わりと面白いアイディアな気がする.

静的解析ベースで,レポートとして出力されてくるので,コンパイルした後に実行するとかいう使い方ができそう.

アドバイスがどのメソッドを呼んでて,その結果どんな作用を起こしているかについてはメソッドごとのサマリのようなものを作っているみたい.ただ,アドバイスの中で他のアドバイスの実行まで検出してたら解析がきちんと終了できるのかどうか良く分からない.


2004-11-14 古い日記からの変換データ [長年日記]

_ [OUCC]新入部員(?)

前に話だけ聞いてた立命館大学の人が部室に来たところに初めて会った.さすがに遠いはずなので,来るのは休日だけだったりするのかな?

外部の人で実質的に部員だった人は今までもいたけど,わりと久しぶりかもしれない.

_ [論文]オブジェクトの所有関係の解析

Samuel Z. Guyer, Kathryn S. McKinley:Finding Your Cronies: Static Analysis for Dynamic Object Colocation.Proceedings of OOPSLA2004, pp.237-250.

静的解析を使って,オブジェクトの所有関係を見つけて,その情報をガベージコレクタの動作に反映させようという話らしい.使っているのは Java バイトコードに対する points-to analysis で,GCのパフォーマンス向上に使った評価の話のようだが,同様の情報はクラス間の関係図を作るといった用途にも使えそう.