«前の日(08-07) 最新 次の日(08-09)» 追記

netail.net

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

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


2002-08-08 古い日記からの変換データ

_ ダイクストラ

ダイクストラが 8月6日,死去.謹んで冥福を祈りたい.

情報科学を専攻してる人間にとっては偉大な先駆者のひとりだけど,asahi.com の "おくやみ" 記事とかには載ってない.シャノンは載ってたような気がするんだが….

_ Intentional Programming

Intentional Programming - Innovation in the Legacy AgeCharles Simonyi

Intentional Programming は,プログラマの意図 (Intention) を再利用することが目標?Intention に,そのソースコードへのマップのやり方だけでなく,エディタでの表示をどうするかとか,色々な情報を付加している.

うまく使えば,抽象的なボキャブラリを言語に導入できる.たとえば forall x in A, do {} を Iterator 表現に置換するとか….でも,Intention 自体を抽象的に書けるかどうかとか,色々問題もありそう.個人的には,IDEの支援がないとまったく利用不能なツールは,しかもツールの実装そのものが高コストなものは,好みではない.

どうでもいいけど,IP (Internet Protocol) という既存の言葉とかぶる略称はやめてほしいなぁ.

_ 論文

Support for Subtyping and Code Re-use in TimorJ. Lesile Keedy, Gisela Menger, Christian Heinleinをチェック.Subtyping (is-a) と,実装の再利用としての継承というのは別物だから,区別して使えないといけない,という主張.この筆者が作った(?) Timor という言語では,impl ArrayDEQueue of DoubleEndedQueue reuses ArrayQueueといったようにインタフェースは DoubleendedQueueだけど実装だけは継承しているみたいなことが書けるらしい.(ここで Queue と DoubleEndedQueue は特に関係のない type, type とは Java でいう interface みたいなもの)これは,Java の "implements" などにくらべて記述の自由度が高いので,面白いかもしれない.

_ JREVEAL, Java Decompiler

TOOLS (Technology of Object-Oriented Languages and Systems)2002 の論文でREVEAL というのが紹介されてたので検索してみるとhttp://www.jreveal.org/index.htmlという Java の逆コンパイラを発見した.逆コンパイラが役立つかどうかはともかくとして(設計書の残ってないバイナリコードのメンテナンスには役立つか?)興味深いシステムである.

_ 論文

http://www.fuka.info.waseda.ac.jp/~washi/diary/200202.html

>[TOOLS Pacific 2002] 初日>http://www.cse.unsw.edu.au/tools/>>"Specifying and Implementing the Operational Use of Constraints in Object-Oriented Applications">Verheecke, B. and Straeten, R.V.D. (2002). >>Constraints を元のクラスとは別の Constraints Class を>自動生成して、その内容を CASE Tool から生成した元の>クラスに ”埋め込んで”検証する試み。

気になるアプローチだったのでチェックしてみた.

OCL と呼ばれる制約記述言語を UML に加えて,クラス図からコードを生成するときに検証用のコードと,それを破った場合の例外 throw 文が加えられる.ツールによるサポートが前提だけど,面白い試みだと思う.ただ,throw されうる例外は必ず正しく catch しないと意味がないので,コードを書く人が不慮の例外発生,および不慮の例外 catch に気をつけないといけない.たとえば,リソースの解放は確実に finally をかましとかないとまずい,とかいうことになるわけで,その辺は不安がある.

_ 論文

Constantions A. Constantinides, Atef Bader and Tzilla Elrad.An Aspect-Oriented Design Framework for Concurrent Systems.ECOOP '99 Workshop on Aspect-Oriented Programmingを読み直し.アスペクトの階層化という言葉で引っかかってたけど,(C + A) で合成した結果に対してさらに別のクラス C' とアスペクト A' をくっつける,といったような階層化らしい.これは,システム全体を横断するようなアスペクトが他のアスペクトから影響を受けたくない場合などに有用.AspectJ では現状ただの足し算になるので,「このアスペクトには他のアスペクトはくっつくな」と宣言できないんだけど,それが実現可能になる.(この「他のアスペクトはくっつくな」表明は, 逆にくっつかないと困る場合もあるので一概にはいえない問題. たとえば,ファイルへの出力をすべてネットワークへマップするとか いうアスペクトがあった場合,それはログ吐きアスペクトにも くっつかないとダメ)

_ 論文

読んだことのある論文の管理がいい加減だと,どうしても複数回同じ論文を読んでしまいがち.何か組織的な方策はないものかしら.単に論文タイトルでリストを grep するだけって芸がないしなぁ….


2003-08-08 古い日記からの変換データ

_ ワイン

結局,シャンボールミュジニー 1934年,アンリ・ド・ヴィラモンは年数のわりに飲みやすくて(渋みはすごかったけど)美味しかった.

残念ながら,ラベルはがしは失敗したが記念写真だけ撮ったのでよしとしておこう.

コルクはかなりぼろぼろ.抜くとき,崩れそうなくらいやわらかくなっていた.ボトル写真

ボトルはこんな感じ.ボトル写真その2

注いでみると,赤色が微妙に違う.ワイン


2004-08-08 古い日記からの変換データ

_ インタビュー記事

WebSphere のアーキテクト,ドナルド・ファーガソンへのインタビューが載ってた.http://itpro.nikkeibp.co.jp/free/NC/NEWS/20040805/148248/

「Javaのソース・コードには、きちんとセミコロンをつけること」だそうで.

「エンジニアはしばしば仕事に熱中しがち。仕事には区切りをつけることが大切だ。顧客を素敵なディナーに招待することはもちろん、自分の子供と遊ぶことだって大切なこと」


2005-08-08

_ [hyCalendar]FAQ更新

文字化けを起こしてしまう,という質問が来たので,フォント設定の確認をお願いしたら,「地域と言語のオプション」で英語を選んでいたらしい.ということで,フォント設定が縦書き・欧文フォントのときに文字化けを起こすというFAQのところに地域と言語のオプションの情報も追記しておいた.


2006-08-08

_ [論文] デザインパターンカタログの品質メトリクス

Cutumisu, M., Onuczko, C., Szafron, D., Schaeffer, J., McNaughton, M., Roy, T., Siegel, J. and CarbonaroEvaluating M.: Pattern Catalogs - The Computer Games Experience. Proceedings of ICSE 2006, pp.132-141, Shanghai, China, May 2006.

ゲーム開発を題材にしているが,定型的なコードの生成(もしくは手作業での記述)に使うデザインパターンを一式用意したとき,それがどのくらい「良い」カタログかを計測するメトリクスを提案している.

メトリクスは,カタログ単体ではなく,カタログとアプリケーションの組に対して計測される.カタログに掲載しているパターンのうち何%がそのアプリケーションで使われたかを表現する usage(低い=有用なパターンを見つけにくい),アプリケーション内で使っているパターンのうち何%をカタログが網羅しているかの coverage,1パターンあたり何回くらい使われてるかの utility,パターンを実際の場面に適用するのに必要なステップ数の少なさをあらわす precision の4つ.

「そのアプリケーションに対するカタログの適切さ」なので,値が良くなるようなデザインパターンのサブセットをカタログから取り出しておき,同じドメインの別アプリケーションの開発に使う,とかいう形になるのだろうか.

ふと思ったのだけど,コーディングパターンとかをソースコードから自動抽出するような手法の出力結果に対して,この4つのメトリクスの値を良くするようなフィルタリングを行えば,出力の有用性が上がったりするかもしれない.抽出されたパターンのインスタンスがどこにあるかを数えたり,どのくらい元パターンから変形してるかを判定する方法のは大変だろうけども.