netail.net
自作フリーソフトや,ゲームに関する雑記を公開してます.
日記はソフトウェア工学の論文ネタが中心です.
最近のお知らせ (古いものはこちら)
2002-11-16 古い日記からの変換データ [長年日記] ▲
_ 論文 ▲
OOPSLA 2002 投稿論文のうち,タイトルが目を引いたMira Mezini, Klaus Ostermann:``Integrating Independent Componentswith On-Demand Remodularization'' を読んでみた.
interface として expect, provide の二通りを定義し,expect を使って provide を実装する implements class とprovide を使って expect を実装する bind class とを作成し,collaboration = implements + bind という形式でペアにしてそれらを結合して利用する,というもの.expect/provide interface の発想は今までにもあったが,fluid (流動的?) AOP,実行時のペアの差し替えなども視野に入れている様子.
これは class -> aspect 方向の依存辺を引くという点がaspectual collaboration などと異なっていて,自分でやろうとしている仕事と近い立場.
ただ,bind する側はすべての expected を実装する必要があって,3者以上が参加する collaboration を定義するのは難しそう.また,アクセス制限なども考慮されてないので,そのあたり微妙な問題を含んでいる気がする.もう少し,自分のネタとの比較は真剣に検討したほうがよさそうだが,同じような立場を取る人が他にもいる,というのは心強い.
_ delphi PCL ▲
Persistent Component Library に含まれているHashTables.pas にバグ発見.
function THashTable.Current: Pointer; の中身誤: if (FPosition >= 0) and (FPosition < FCapacity) and正: if (FPosition >= 0) and (FPosition < FCapacity * 2) and
これのせいで TStringTable.Current, TStringTable.CurrentKey が正しく動かない.なぜだろうと思っててひたすら内部をデバッグしていて気付いた.(他の条件節ではすべて FCapacity * 2 なのに,ここだけ * 2 がなかった)
_ 読書 ▲
ネビル・シュート「パイド・パイパー~自由への越境」読了.古い作品の復刊だが,構成として非常によくできている,と思う.たくさんの子供を連れて戦火の中を移動する,強い責任感を持って行動する老人の頑張りが印象強い.別に大事件が起こるわけではないけれど,追われる側の緊張感がある.
長い旅路っていうネタは TRPG でもやってみたいと思ってるので,そのときにはこの作品も参考になるかも,とか思う.
さて,パスポート申請に行ったついでに買ってきたアン・マキャフリィ「竜の貴婦人(上・下)」を読み始めることにする.テーマは「モレタの飛翔」で,最終的にどうなるかはバラードとして既に他の作品で語られているが,どうしてそうなったのか,というところが気になるので読んでみる.
_ Bookmark Manager ▲
非階層ブックマークを実装するべく,久しぶりに Delphi を起動.カテゴリを扱うために文字列の集合クラスを作りたいが,TSet なんて標準では定義されてない.Tommi Johtela の公開している Persistent Component Library を使わせてもらうことにした.
紹介記事:http://www.undu.com/Articles/991117a.htmlダウンロードはここから:http://www.cs.utu.fi/tjohtela/software.htm#PCL
いちおう集合クラスも定義されていたのだが,TSet はTItem とかいうクラスしかアイテムとして取れなかったので,いちいち String のラッパーを生成するのが面倒そう.そこで,StringTable (KeyがStringなHashtable)を利用して,関連付ける値としては TObject に Singletonなオブジェクト1個を食わせる形式で,自前の StringSet を定義することにした.