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