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

netail.net

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

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


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

_ [論文] IWPSE

IWPSE2004 が無事終了.

今回の収穫(?)というか好感を持った論文は,以下の2本.

Vibha Sazawal, Miryung Kim, and David Notkin:A Study of Evolution in the Presence of Source-Derived Partial Design Representations.Proceedings of IWPSE2004, pp.21-30, Kyoto, Japan, September, 2004.

注目したソースファイルに対して,そこから抽出できる低レベルの(具体的な)情報が変更支援に役立ちます,という話.どんな型を使っているか,インスタンス化しているか,戻り値として受け取ったオブジェクトをどうキャストしているか,といった情報を抽出して提示する話.

Giuliano Antoniol, Massimiliano Di Penta, and Ettore Merlo:An Automatic Approach to identify Class Evolution Discontinuities.Proceedings of IWPSE2004, pp.31-40, Kyoto, Japan, September, 2004.

プロジェクトの履歴において,途中で現れたクラスや消えたクラスが,他のどのクラスから分割されたのか,あるいはどのクラスへ吸収されたのか,同じ実装のクラスの名前が変わったのか,といった情報をソースコードのベクトル表現から角度を求めて推定するという話.

_ それから,引用するかも(?)文献として1本.

Nguyen Truong Thang, Takuya Katayama:Handling Consistency of Software Evolution in an Efficient Way.Proceedings of IWPSE2004, pp.121-130, Kyoto, Japan, September, 2004.

基本はソフトウェアの変更に対してP で成立する性質 p が,変更を加えた P+E でも成り立つかCTL logic を使って調べよう,というもの.

変更として,feature-based software に注目していて,いくつかのプロダクトファミリで同じ性質が保持され続けるか,といった検査に使うのかな,というところ.アスペクトによってプログラムが壊れないかの検査にも使えそう.


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

_ 地震

真夜中に再び地震で目を覚ます.今度もM7.3規模自体はけっこう大きいみたい.震源が直下とかでないから震度5程度で済んでるのだろうけど.

……部室の本棚は大丈夫かな?


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

_ 地震

大阪府北部(部室)では震度4.本棚の縦板がずれて(!)中板が傾いた.損傷度合いについては未評価.

_ [AspectJ] aosd-jp ML 解凍(?)

aosd-jp ML が,久々に動き始めてる.アスペクトの使い方にはどんなものがあるか,分類的な話など.

"凍った" ML が再び動き出すときは"溶けた" って表現するのだろうか.謎.

まだ完全に溶けたとは限らないけど.


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

_ [論文] クエリーとしてPointcutを指定する

読もうとしてたらたまたま aosd-jp ML でも紹介されてたり.

Michael Eichberg, Mira Mezini, Klaus Ostermann:Pointcuts as Functional Queries. In The Second ASIAN Symposium on Programming Languages and Systems (APLAS 2004), Springer, LNCS.

Java などを XML 表現に変換してその上で XQuery を使えば,実は pointcut 言語と同じことができるよという感じのお話.

題材としては Kiczales の predictive control flow など.「draw メソッドの実行中に参照される(特定クラスの)フィールドの集合」を「ディスプレイの状態」とみなして「ディスプレイの状態が変更されたら…」と実装の詳細をある程度抽象化した表現に持っていきたい(と言いたいのだと思う)が,そういう pointcut を書くための道具立てとしてXQuery も使えるんですよという展開になってる.

とりあえず静的な pointcut だけに限定した話だが,まあそれなりの時間で計測もできているしこういうクエリーを pointcut 記述に使うのもいいでしょう,という話らしい.関連研究では dflow なんかも実現してみたいとか,Josh のようなメタプログラミングは難しいですよとか,色々.

この論文の主旨ではないが,pcflow は,不用意に書くと「draw から参照されるフィールド集合」の中に無関係に貼りついたアスペクト(たとえばキャッシュ処理とか)が勝手に導入したフィールドまで含まれたりしそうで怖そうでもある.きっと便利だし,あれば使う機能だと思うのだけど…….フィールド集合が静的に解析できるなら自前でチェックもできるし,大丈夫……かな?


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

_ [hyCalendar] 0.8.5 リリース

プリンタ情報コンポーネントだけ更新してリリース.

_ [hyCalendar] アクセス違反

プリンタ情報コンポーネントが,プリンタ情報構造体のサイズが小さいものから大きいものへサイズを大きいほうに合わせてデータをコピーしていてこけていた.

発現条件は特定のプリンタがインストールされていること.問題が発生したPC上では「自動 Printer (Host上)」というのが原因だったが,他のPCでは必ずしも再現するわけではないよう.気づいたのもほとんど偶然.

最新版のコンポーネント(先週リリースされていた)では,問題のコード部分に,問題を回避するための条件分岐が増えていたので移行.0.8.5 としてリリースの予定.


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

_ [ゲーム]リンクの冒険

ファミコンミニ版クリア.難易度はわりと高かったが,よくできてるゲームだった.満足.

_ [論文]安全なメタクラスの結合

ICSMの発表資料作りで一時的に煮詰まってきたので,気分転換に論文を探して読むことにする.

Noury M. N. Bouraqadi, Thomas Ledoux, Fred Rivard:Safe Metaclass Programming.Proceedings of OOPSLA 98, pp.84-96,Vancouver, B.C., October, 1998.

メタクラスを使って継承階層を作るときには,クラス間の継承関係と,対応するメタクラス間の継承関係がきちんと保たれないと困る,とかいう互換性問題があるらしい.

ところが,特定のクラスにだけ属性を付与しようとすると(たとえばあるクラスのインスタンス生成を禁止するAbstract を付加すると)その属性が継承されてしまって困ったことになる.

そこで,互換性を維持するためのメタクラスと,クラスごとの属性を付与していく「属性メタクラス」を区分し,実際のクラスたちは属性メタクラスのインスタンスとする.

MetaA ←(inherit)← "MetaA + Singleton" ←(instance)← Aといったようになる.間の "MetaA + Singleton" のところが付与する属性の数に応じて継承階層数が増えていく.

著者らは2003とかにも原稿を書いていて,このあたりの継承階層をMix-inとして実装するつもりのよう.クラスのプログラマが,サービスとして提供されているメタクラスをMix-inとして導入するイメージみたい.

Non-orthogonalな属性(Value-Conflict)については単に継承元のメソッドを呼ぶようにして振舞いましょうといった程度のことしか書いていなかった.あとは開発者がMix-inする段階などで順番など何らかのコントロールをする,ということになりそう.このあたりの話は他にも文献をあたってみないといけない.

結合の安全性という話とは直接は関係ないが,この論文の著者らは,属性メタクラスのクラス(メタ-メタクラス)をベースに使われる場面ごとに属性メタクラスがインスタンス化されるという考え方をしている.この辺はアスペクトのインスタンス化の話に何か結びつくかも?結合対象はあくまでクラス単位だけれど.


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

_ [hyCalendar]0.8.4 リリース

地味なバグフィクスが終了したので 0.8.4 リリース.本当は他にやること一杯あるんだけど…….

「インストールできず削除もできません」という曖昧な質問が来た.「曖昧なので答えられません」という旨の返事を出しておくことにする.具体的にどういう操作ができないのだろう.謎.