1. A method for detecting computational errors in a system comprising a digital processor executing a program, the method comprising steps of: separating the program in computation segments; compiling source code for at least one of the segments to generate two code sections, one of which is functionally redundant with respect to the other; and generating comparison code for comparing results produced by execution of the two code sections; wherein the processor is configured to: execute each of the code sections in a different computational domain to generate respective results; compare the respective results using the comparison code to detect said computational errors; and execute one of the code sections to alter further flow of execution of the program only if the respective results are identical.