目次

ニュース

日記カテゴリ

書庫


Radium Software Development
興味深いことに, Sawzall はエラー忘却型コンピューティング (failure-oblivious computing) [Rinard] の手法を採り入れている。エラー忘却型コンピューティングとは,プログラムの実行中に発生したエラーを「無かったこと」にすることによってシステムの頑健性を高めるという手法である。やや乱暴な手法ではあるが,バッファーオーバーランなどを悪用した攻撃に対して高い耐性を発揮することが確かめられている。
通常, Sawzall におけるエラーは無定義値 (undefined value) と呼ばれる概念によって扱われる。無定義値は I/O エラーやゼロ除算などが発生した際に返却される値であり,これを読み取ろうとするとプログラムは停止する。プログラム側では def 述語関数を用いて無定義値を検出し,適切な対処を行うことが求められている。
ところが, Sawzall に用意されている「実行時フラグ」 (run-time flag) を有効にすると,無定義値の読み取りによるプログラムの停止は行われなくなる。そして,無定義値に関わる処理は全て省略される ― つまり「無かったこと」にされてしまう。アプリケーションをリリースする際には,このようなフラグを有効にすることが推奨されている。

ついにパソコンが「なかったことに!」ってスキルを覚えました。いいですね。
例外処理とは違い処理自体が「省略」されるみたい。。。
なので使いどころを間違うと「バグの原因が省略されてしまってる」状態になるなぁ(汗
業務システムなんかには使いにくいかぁ。。。
投稿日時 : 2006年8月24日 22:07
Feedback
No comments posted yet.
タイトル  
名前  
Url
コメント   

Blog 利用状況

  • 投稿数 - 98
  • 記事 - 0
  • コメント - 239
  • トラックバック - 19

絡んでるところ