Null function

In computer science, a null function (or null operator) is a subroutine that leaves the program state unchanged. When it is part of the instruction set of a processor, it is called a NOP or NOOP (No OPeration).

Mathematically, a (computer) function is null if and only if its execution leaves the program state unchanged. That is, a null function is an identity function whose domain and codomain are both the state space of the program, and for which:

for all elements .

Less rigorous definitions may also be encountered. For example, a function may take a single operand, transform it into a new data type, and return the result.[1] While such usages bear a strong visual resemblance to identity functions, they create or alter a binary data value and thus change the program state. From a software maintainability perspective it is better to identify such "minor" alternations of state explicitly, since calling them null functions provides future maintainers of the code with no insights on their actual purposes.

Uses

Null functions have several uses.

During software development, null functions with the same names and type signatures as a planned functions are often used as stubs—that is, as non-functional placeholders that allow the incomplete body of code to be compiled and tested prior to completion of all planned features.

Null functions, particularly the NOP variety, are also used to provide delays of indeterminate length within wait loops. This is a common strategy in dedicated device controllers that must wait for an external input and have no other tasks to perform while they are waiting. Such wait loops are also used in software applications on larger multiprocessing computer systems. However, for multiprocessing systems a better approach is to use operating system functions that let other processes use the CPU during the waiting period.

A third use of null functions is as the definition of a program feature that, if created inadvertently, is almost always deleterious. Unintended null functions can arise during the development of complex programs, and like dead code, such occurrences indicate serious flaws in program structures.

A null function or method is often used as the default behavior of a revectorable function or overrideable method in an object framework.

gollark: I do have an archive of all my pastes there, but if they do kill it completely I'll have to fix a lot of stuff.
gollark: Pastebin's VERY harsh rate limiting means PotatOS Tau actually has to fall back to my server for updates half the time.
gollark: It's also case-sensitive now, breaking SO many things.
gollark: I started up a git server and moved potatOS to it because of the bad changes they badly made.
gollark: Maybe if ender modems were large multiblocks of some sort, or if they could only communicate with stuff at the same X/Y/Z coord across dimensions, or if they could only work with portals nearby or something, we would have CC networking which actually does routing.

See also

References

  1. Example of a type conversion function labeled as a "null function": _NULLF - null function.
  • The NULL Encryption Algorithm and Its Use With IPsec. IETF. November 1998. doi:10.17487/RFC2410. RFC 2410. Makes humorous statements about the NULL encryption algorithm.
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.