| form of fault-tolerant software design in which several diverse versions of a program are executed in parallel and the majority output is selected
Note 1 to entry: The program versions are usually executed in separate processors.
Note 2 to entry: Each version is capable of performing the given task. At least three versions are employed. A voter selects the result on which the majority of versions agree. If no majority exists, then the whole functional unit fails.
Note 3 to entry: N-version programming is an example of active redundancy, and is mostly used in avionics and process control systems.