* Paul Schlie: > So in effect the standard committee have chosen to allow any program which > invokes any undefined behavior to behave arbitrarily without diagnosis? > > This is a good thing?
It's the way things are. There isn't a real market for bounds-checking C compilers, for example, which offer well-defined semantics even for completely botched pointer arithmetic and pointer dereference. C isn't a programming language which protects its own abstractions (unlike Java, or certain Ada or Common Lisp subsets), and C never was intended to work this way. Consequently, the committee was right to deal with undefined behavior in the way it did. Otherwise, the industry would have adopted C as we know it, and the ISO C standard would have had the same relevance as, say, the ISO Pascal on the evolution of Pascal. Keep in mind that the interest in "safe" langauges (which protect their abstractions) for commercial production code is a very, very recent development, and I'm not sure if this is just an accident.