Why don't other programming languages have ranges?

Walter Bright newshound2 at digitalmars.com
Tue Aug 3 10:32:58 PDT 2010


Don wrote:
> Hence Walter's assertion, that the most effective way to deal with this 
> is to have _independent_ redundant systems. Having two identical copies 
> doesn't improve reliability much. If you have two buggy pieces of code, 
> but they are completely independent, their bugs will manifest on 
> different inputs. So you can achieve extremely high reliability even on 
> code with a very high bug density.

Yup, it's one of those things where the math works in your favor. Two systems, 
each with only 90% reliability, combine to produce 99% reliability (if they are 
decoupled and independent).


> I've not heard this idea applied to software before. (Though I vaguely 
> remember a spacecraft with 3 computers, where if one produced different 
> results from the other two, it was ignored. Not sure if the processors 
> used different algorithms, though).

It's been done with software in avionics since at least the 70's. Different 
processors, different circuits, different algorithms, different programming 
languages, different teams, and another team to ensure the resulting designs 
really doesn't have any commonality.

There's a hardware comparator that, if the outputs differ too much, will shut 
down both systems (by pulling the power to them) and inform the pilot that he's 
now doing it manually.

The space shuttle I believe uses 5 computers. 4 are identical, that vote. 
There's a fifth that is independently written and has only a minimal subset of 
the functionality, good enough to hopefully get the machine home.


More information about the Digitalmars-d mailing list