コンピュータサイエンスにおいて、ヌル関数(またはヌル演算子)は、プログラムの状態を変更しないサブルーチンです。プロセッサの命令セットの一部である場合、 NOPまたは NOOP (No OPeration) と呼ばれます。
数学的には、(コンピュータ) 関数が null となるのは、その関数を実行してもプログラムの状態が変化しない場合のみです。つまり、null 関数とは、そのドメインと共ドメインがプログラムの状態空間であり、次の条件を満たす 恒等関数です。
- すべての要素に対して。
それほど厳密でない定義に遭遇することもある。例えば、関数は単一のオペランドを受け取り、それを新しいデータ型に変換し、その結果を返す。[1]このような使用法は、見た目は恒等関数に非常に似ているが、バイナリデータ値を作成または変更し、プログラムの状態を変更する。ソフトウェアの保守性の観点からは、このような「軽微な」状態の変更を明示的に識別する方がよい。なぜなら、それらをヌル関数と呼ぶと、将来のコード保守担当者に実際の目的についての洞察が与えられないからである。
用途
Null 関数にはいくつかの用途があります。
ソフトウェア開発中、計画された関数と同じ名前と型シグネチャを持つ null 関数がスタブとして、つまり、計画されたすべての機能が完了する前に、不完全なコード本体をコンパイルしてテストできるようにする非機能的なプレースホルダーとして使用されることがよくあります。
ヌル関数、特に NOP 関数は、待機ループ内で不確定な長さの遅延を提供するためにも使用されます。これは、外部入力を待機する必要があり、待機中に他のタスクを実行する必要がない専用デバイス コントローラーでよく使用される戦略です。このような待機ループは、大規模なマルチプロセッシングコンピューター システムのソフトウェア アプリケーションでも使用されます。ただし、マルチプロセッシング システムの場合、待機期間中に他のプロセスがCPU を使用できるようにするオペレーティング システム関数を使用する方が適しています。
ヌル関数の 3 つ目の用途は、誤って作成された場合、ほぼ常に有害となるプログラム機能の定義としての使用です。意図しないヌル関数は複雑なプログラムの開発中に発生する可能性があり、デッド コードと同様に、このような発生はプログラム構造に重大な欠陥があることを示します。
null 関数またはメソッドは、オブジェクト フレームワーク内の再ベクトル化可能な関数またはオーバーライド可能なメソッドのデフォルトの動作としてよく使用されます。
参照
参考文献
- ^ 「null 関数」というラベルの付いた型変換関数の例: _NULLF - null 関数。
外部リンク
- NULL 暗号化アルゴリズムと IPsec での使用。IETF。1998年 11 月。doi : 10.17487 / RFC2410。RFC 2410 。NULL 暗号化アルゴリズムについてユーモラスな発言をします。
