3 ms·
What you are referring to is not DieHard but rather Exterminator. DieHard probabilistically tolerates memory errors, while Exterminator repairs them. Both rely
by emeryberger 12y ago
What you are referring to is not DieHard but rather Exterminator. DieHard probabilistically tolerates memory errors, while Exterminator repairs them.
Both rely on a carefully designed semantics under which one can provide a reasonable interpretation for erroneous computations. They employ sophisticated randomized algorithms and/or statistical inference procedures and contain proofs of their effectiveness. That's not exactly a hack.
The fact is that managed languages that provide memory safety guarantees -- through strong type systems, mandatory bounds checks and automatic memory management -- are of course preferable to C/C++/Objective-C from a software engineering perspective.
But the fact also remains that most of the code we use today is written in unsafe languages, including the runtime systems that undergird managed languages. Since these programs almost certainly contain errors, it makes sense to accept that fact and work to provide solutions.
I'd encourage you to read this article, which appeared in Communications of the ACM - "Software Needs Seatbelts and Airbags", which contains an in-depth discussion of these issues.
http://cacm.acm.org/magazines/2012/9/154577-software-needs-seatbelts-and-airbags/abstract http://cacm.acm.org/magazines/2012/9/154577-software-needs-s...
That content, which initially appeared in ACM Queue, is freely available here on my blog:
http://emeryblogger.com/2012/05/31/software-needs-seatbelts-and-airbags/ http://emeryblogger.com/2012/05/31/software-needs-seatbelts-...