«前の日(12-10) 最新 次の日(12-12)» 追記

netail.net

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

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


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

_ AspectJ

AspectJ 1.1 での変化の話を ~tail/aspectj/ に追加.ドキュメントの実体を XML 化したおかげで,新セクションを意味する subsection タグに文章の中身を書いてmake するだけで目次なども自動生成されるし,日付は make 時に XSLT エンジンに渡すので書き換えコストはかなり軽減されていることを実感.

_ 紅茶

地味に紅茶のドキュメントをアップデート.新しい紅茶を仕入れてないのでほとんど変わっていないが,よく飲むようになったウヴァ・ハイランズの評価をちょっと上げた.

_ METRICS2003

METRICS 2003 の web サイトが落ちてるなーと思ってたら,シドニーであった火事のせいらしい.そのおかげで,論文の締め切りが2週間延長.論文出そうか,という話になってたところなのでこれは幸運に感謝すべきなのかな?

_ 風邪

食生活を改善したおかげ……でもないだろうが,かなり風邪から復帰.相変わらず鼻水がひどいので,久しぶりにポケットティッシュを購入.

_ オーストラリア

豪日交流基金の実体がふと気になって調べてみたら,http://www.australia.or.jp/http://www.ajf.australia.or.jp/を発見.けっこうよくできてるサイトで,こういう団体なら bun45 の成果物を見たがるのも分かる気がする.


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

_ AspectJ 1.5.0M1

J2SE 5 にあわせて AspectJ 5 の開発もがんばっているみたい.

とりあえず最初のステップとして annotation など新構文がサポート.call(@hoge void A.*(..)) とか書けるらしい.宣言的な(Java World の記事で「アトリビュート指向な」と表現されていた)アスペクトの記述が可能になるという意味でけっこう大きいかも.


2006-12-11

_ [論文] メモリアクセス違反を防ぐ

C/C++におけるメモリアクセスに関する耐障害性について,Microsoft Research のBen Zornという人が喋りに来てました.私の研究にはまったく関係ないですが.

プログラムにパッチを当てるというのは管理やテストのコストが高くつくので,できればプログラムがエラーを起こしても自分で回復して実行を継続できるようにしたい,ということで研究をしているそうです.

この手法の対象としては単純にプログラミングエラーだけでなく,ハードウェアエラーによるデータ破壊とか,オンラインゲームのことも引き合いに出していました.特にオンラインゲームについては,キャラクターの所持金やアイテムが現実のお金と交換できるせいで,データ破壊の防止が重要になっていると指摘していました.

基本的なポインタエラーからの保護としては,malloc/free を差し替えて,バッファ領域の前後に余分な空間を持たせ,バッファ群を多重化し,レプリカごとにメモリ配置をランダムに変更する方法を取っていました(多数決でエラーを起こしたレプリカは捨てて,新たに領域を確保しなおすようです).メモリをかなり多めに使うので,適用先はある程度限定されるようですが,プログラムを書き換えずにそのまま実現できるという利点があります.

一方で,重要データの上書きを防止するために,"critical int" のようにソース上で修飾された変数の多重化を行っていました."critical store" という特別な命令によってのみ多重化されたコピー群をまとめて更新できるようにしておき,ポインタの操作ミス(または故意)でのデータ破壊が発生しても,"critical load" 命令によってコピーから値を復帰できるようにしています.

こちらの手法は,重要データの選び方にもよるようですが,実行時オーバーヘッドが10%程度で収まっていて,ランダムなメモリ書き換えが起きるような環境でもデータ破壊を防ぐことができた(最悪でも assertion などで停止した)ようです.

こういった手法は,CPUパワーとメモリを投資するほど安全性が向上するので,「メモリはあればあるだけ使ってしまう」状態が続きそうです.まあ,メモリが余ってても仕方ないので,余分にメモリを積んでいたら勝手に安全性向上,とかいう形になれば,それなりに嬉しいかもしれません.昔,PC-8801MHを使っていた頃は,PC-98シリーズなど,メモリを640kBも何に使うんだろうとか思ってたんですけどね…….