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

netail.net

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

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


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

_ IWPSE/FSE

@Helsinki 2日目.ホテルに無線LANがあることが分かったのでホテルで15EUR/24h を支払って認証コードをもらう.

電話が 2EUR/分 なので,ダイヤルアップするよりははるかに得.せっかくモジュラーケーブルとかローミングサービスとか使えるように用意しておいたのだが,電話が高すぎて使えなかった.


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する段階などで順番など何らかのコントロールをする,ということになりそう.このあたりの話は他にも文献をあたってみないといけない.

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


2005-08-31

_ 宅配便の到着待ちのため

身動き取れず.とりあえず出張の行き先の情報をごそごそ収集.結局,18時頃に荷物は到着した.待っている間に,研究室紹介用の原稿をちょこっと修正して,研究室のweb整備担当の人のところにファイル配置.

_ [お出かけ] 播州赤穂

一昨日から昨日にかけて1泊2日の旅行で行ってきた.レンタサイクル(200円/日)を播州赤穂駅で借りて赤穂城跡周辺(歴史博物館とか民俗史料館とか)を回ってきたのでやや疲労気味.とはいえ,赤穂市は京都嵐山とかとは違って平地なので,バスなどよりもかなり楽に移動できた.

宿泊した祥吉という旅館は,浴衣と作務衣の好きなほうが選べたりとか,スリッパのかわりにい草の草履を用意してもらえたりとか,サービス的にも,良い雰囲気の旅館だった.


2008-08-31

_ [論文] プログラミングは art である

IEEE Software 7月/8月号に,Diomidis Spinellis による The way we programというコラムが掲載されています.プログラミング好きな人にお勧めの記事なので,誰でも読める本人のブログの記事をリンクしておきます.本人のブログには6月に掲載されていたようなので,既にどこかで紹介されているかもしれませんが…….

この記事では,大きいプログラムも小さいプログラムも,意味のある識別子,コメント,空白がある一定の割合を占めているというデータを示しています.意味のある識別子の量は,まずユニークな識別子数を数えて,それを一意に表現するために必要な最小文字数(符号化したときの最小符号長)を計算しておき,各変数の出現が最小文字数よりも何文字余分に使ってるかの合計で計算しているようです.

それを踏まえて,プログラミングは art であって,やりたい処理を計算機のために翻訳する作業ではないと述べています.ソースコードは,コメントによってコードの意味や書かれた理由(the story behind the code)を記述し,空白によるレイアウトでコードの隠れた構造を明らかにし,意味のある識別子という少ない言葉で物事を表現しており(almost stylized poetry: a type of creative communication through a few words adhering to a specific form),簡潔で曖昧さのないコミュニケーションを行うことを目指したものだと述べています.

これを読んで直接何か役に立つという記事でもないですが,表現とか,データ自体は面白いと思います.