netail.net
自作フリーソフトや,ゲームに関する雑記を公開してます.
日記はソフトウェア工学の論文ネタが中心です.
最近のお知らせ (古いものはこちら)
2005-05-24 ▲
_ [論文] コードの使い方の例を見つける ▲
Reid Holmes and Gail C. Murphy: Using Structural Context to Recommend Source Code Examples.
Proceedings of International Conference on Software Engineering 2005, pp.117-125, May 2005.
フレームワークなどを使うときには開発者が適切な順番でクラスのインスタンス化や準備用メソッドの呼び出しを行う必要があるが,それを調べるのはけっこう大変なので,自動でコード片を探してこようというもの.
基本的には,開発者が書きかけのコード片から,使っているクラスやメソッド名を取ってきて,リポジトリ内にあるメソッドが使っているクラスやメソッドとマッチを行うというもの."Structural Context"という響きにちょっと期待したのだけど,特別なものではなかった.
呼び出す相手のクラスやメソッドは分かっていても,そのインスタンスをどこからもらってくるといいのか分からないときなどに使える.
Eclipse を実験相手にして,与えたタスクは一通り実現されたらしいが,適切な例が見つからないものもあった.ただ,それがマッチさせる基準の問題なのか,そもそも例がなかったのかは不明とのこと.
動機の部分(フレームワークを,ドキュメントなどをもとに正しく使うのはけっこう大変というあたり)は別のところで使いそう.
_ [論文] 動的なロールのバインディング ▲
Tetsuo Tamai, Naoyasu Ubayashi, Ryoichi Ichiyama: An Adaptive Object Model with Dynamic Role Binding.
Proceedings of International Conference on Software Engineering 2005, pp.166-175, May 2005.
複数のオブジェクトが相互作用するための "Context" というオブジェクトを作って,Context の中に定義された各 Role に対してインスタンスを割り付けると,Role に定義されているメソッドが使えるようになるというもの.
メソッド名のバインディングや,Role を担当するインタフェースへの require などの要素もあるので,一般的なアスペクトの逆で「オブジェクトから明示的にバインドされて使われるアスペクト」として,しっかり作られたモデルという印象.
コンテキストのインスタンス数がコントロール可能で,インスタンスごとにバインディングの設定が可能で,クラス側ではなくコンテキスト側の再利用が容易となっている(AspectJ や Caesar のように抽象アスペクトと具象アスペクトを区別しなくてよい).ちょっとコーディング上の工夫をすれば,Association Aspect でやりたいと思った Role の1対N関係などの管理なんかもできるかも?
_ [hyCalendar]六曜表示モジュール ▲
六曜計算ライブラリの再配布の許諾がいただけたので,セットでの配布開始.
2009-05-24 ▲
_ [読書] The Annotated Turing ▲
電車通勤になって本を読むぐらいにしか使えない時間が増えたので,Charles Petzold のThe Annotated Turingという本を読んでました.面白かったので,紹介しときます.
文章はチューリング機械について述べられた Alan Turing の論文の文章に注釈や図を追加した形で構成されていて,さらに時代背景や様々な数学の成果との関連まで丁寧に説明しています.論文の展開に合わせて,ドキュメンタリーのように読める文章になってます.
チューリング機械が最初に登場した論文を扱っている都合上,数値などが計算可能(Computable)かどうか,Enumerableかどうかという話が中心です.授業でチューリング機械が登場する場面ではNP完全とかの概念も出てきそうですが,そのあたりについては取り扱っていません.
計算機におけるプログラミングとの関連などにも言及しているので,情報系の授業をある程度受けている人が,数学とのつながりなどの知識を楽しみつつ補強できる読み物という感じでした.