「表明 (プログラミング)」の版間の差分

削除された内容 追加された内容
Ponta2 (会話 | 投稿記録)
Ponta2 (会話 | 投稿記録)
44行目:
 
== 表明の抑止 ==
表明はイネーブル/ディセーブルできるよう実装されていることが多く、プログラム全体でそれを制御できる。表明を何種類か(事前と事後など)実装している言語では、それらを別々にイネーブル/ディセーブルできるようになっているのが一般的である。表明がディセーブルされると、表明違反は発生しない。表明は本来、開発ツールであると考えられるため、リリース時にはディセーブルされることが多い。このため、バージョンによって表明が入っているプログラムと抑止されているプログラムが存在することになる。したがってその違いがプログラムの意味的な違いを生じないことが前提にある。換言すれば、表明は副作用を持っていてはならない。[[C言語|C]]や[[C++]]での別の手法として、<code>assert</code> マクロで表明をディセーブルしている場合でも式の評価だけは行うようにすることもある。ただし、これでは表明を抑止しても性能向上につながらない。
 
製品レベルのコードから表明を除去することも多くの場合自動的に行われる。[[C言語]][[C++]]ではプリプロセッサで条件を指定すれば表明が展開されないようにできるし、[[Java (プログラミング言語)|Java]]では実行時エンジンにオプションを渡すことで同様の効果がある。人によってはこれに不安を感じ、反対することがある。それはたとえて言えば、監視員のいるプールで泳いでいた人が突然海で1人で泳ぐようなものだろう。そのような人々は表明をプログラムの[[フェイルセーフ]]機構としても使用している。
 
== エラー処理との比較 ==