Why is undefined behavior allowed (as opposed to not compiling/crashing)?
- by Roman A. Taycher
I understand the reasons for compiler/interpreter language extensions but why is behaviour that has no valid definition allowed to fail silently/do weird things rather then throwing a compiler error? Is it because of the extra difficulty(impossible or simply time consuming) for the compiler to catch them)?