I understand that embedded environments are constrained. But, nowadays, this is 
more for an economical reason than for a technical reason. More memory means 
that each unit costs more and when you want to sell millions of units, this is 
indeed something to take in consideration.

But this position is acceptable only where security is not a strong 
requirement. I know that software in Airbus planes is written in Ada and I 
strongly hope that checks are still there. I know that Ada is used in Ariane 
rockets too and I’m pretty sure that checks are activated: the first Ariane 5 
destroyed itself following some arithmetic overflow.

There are lot of examples where software has killed. Of course, checks 
generated by the compiler are not the panacea but there are important as the 
first line of defense.

And indeed, it is possible to get a good confidence that some parts of code are 
bug free. But this is only possible for small programs. And if using arrays of 
fixed sized prevents some bugs, that doesn’t insure that indexes are always 
valid. It is still possible to access a fixed array out of bounds.

I have seen too much so-called bug free software crashes to be very confident 
in code which doesn’t contain some elementary protections (index checks at 
least, which a compiler can do with a single comparison).

Reply via email to