13.3.1 Fault-tolerant Hardware Features

13.3.2 Fault-tolerant Software Features

13.3.2 Fault-Tolerant Software Features

Fault tolerance can be simulated in software. One example of such a technique is the sequence

                               
     ensure|x2 - y |< tolerable
     by x := SqrtA(y)
     else x := SqrtB(y)
     else error
     

Here, multiple versions of a function which computes a square root are provided, increasing the likelihood that the square root value returned satisfies some criterion.

Knowledgeable compilers which produce code for fault-tolerant systems should be aware of the redundancies in the architecture. Much research is needed to make this a reality.