未定義動作
コンピュータプログラミングにおいて、未定義動作（, UB）とは、コンピュータ言語が準拠する言語仕様において動作が予測できないと規定されたプログラムを実行した結果のことである。これに対して、言語仕様が動作結果を規定せず、プラットフォーム上の別のコンポーネントのドキュメント（ABIやトランスレータドキュメントなど）が処理系の実装を規定する動作のことをと呼ぶ。
「未定義のコードを実行した結果コンパイラは何をしてもいい。鼻から悪魔が飛び出しても仕様に反しない」というcomp.std.cでの投稿から、C言語コミュニティではユーモアを込めて未定義動作のことを「鼻の悪魔（）」と呼ぶことがある。