I recall at one point reading about embedded development where the programmer took into account things like memory corruption and possibly other hardware issues. For example:
- If an instruction in memory is somehow corrupted, the program would run correctly anyway.
- If the value of some variable in memory is changed, the program will still produce the correct result.
Dealing with #2 seems like a reasonable application of error correcting codes, but #1 seems to me like it would be very difficult. Does anyone know of any references or examples of someone doing that in software?