«前の日記(2006年05月01日) 最新 次の日記(2006年05月03日)» 編集

Matzにっき


2006年05月02日 [長年日記]

_ [Ruby] 日本Rubyカンファレンス2006

Webページが公開された。楽しみである。

土日という日程のため、私は1日目しか参加できない。 懇親会も無理だなあ。皆さんは楽しんでくださいませ。

_ [言語][特許] Whitespace keywords patent invention

プログラミング言語関係の特許というのはめったにないのだが、 これは珍しい例。

英語のクレームの読み方は良くわかんないんだけど、 要するに「空白を含む予約語を許す特許」のような気がする。

うーん、これってほんとに新規性があるの?

なお、これが提出しただけなのか、成立したのか、よくわかんなかった。

_ Radium Software Development: Arithmetic Error

日経Linux用に資料探しをしていて行き当たったページ。

Francisco J. Santistive 氏の論文 "Robust Geometric Computation (RGC), State of the Art" は,幾何演算の分野における浮動小数点演算の安定性について扱っている。

http://citeseer.ist.psu.edu/santisteve99robust.html

この論文の導入部分において,浮動小数点演算の誤差が非常に深刻な事態を招いた例が,二件ほど紹介されている。

最初の例は, 1991 年の湾岸戦争での出来事だ。米軍の兵舎を狙って発射されたスカッドミサイルをパトリオットミサイルによって迎撃しようとしたところ失敗し,結果として 28 名の兵士の命が失われた。米国会計監査院 (GAO) の調査によれば,起動からの経過時間を計測する部分に演算誤差が混じっていたために迎撃に失敗したとされている。

もうひとつの例は, 1996 年に起こったアリアン5ロケットの事故だ。

http://www.around.com/ariane.html

http://www.cas.mcmaster.ca/~baber/TechnicalReports/Ariane5/Ariane5.htm

アリアン5ロケットは,欧州宇宙機構 (ESA) が10年近くの歳月と約70億ドルの費用を投入して開発した待望の商用ロケットだった。しかし,このロケットは離陸から1分も経たぬうちに,約5億ドル相当もの機器を積載したまま,爆発して塵屑と化してしまった。

記事によれば,事故の原因は,慣性基準装置 (IRS) 内にあるソフトウェアが,水平方向の速度値を 64 bit 倍精度浮動小数点から 16 bit 整数値へ変換していた(!)ことにあるとされている。この変換は離陸から約 30 秒後にオーバーフローを引き起こし,装置を停止させてしまった。慣性基準装置の停止はブースターの制御を失わせ,制御の破綻は機体の崩壊を引き起こし,最終的にはそれを検知した自爆装置が作動し,爆発という最悪の結末を迎えることになってしまった。

浮動小数点数、恐るべし。


«前の日記(2006年05月01日) 最新 次の日記(2006年05月03日)» 編集