Standardised languages often have "grey areas" - features or (combinations of) conditions for which no behaviour was defined. Any implementation of the standard may react however it sees fit when it encounters such a condition, either because implementors were explicitly granted such freedom by the standardisation committee, or simply out of necessity because the committee couldn't agree on a single behaviour or just plain overlooked this condition.

Examples of UndefinedSemantics include

  • native method calls in Java
  • #pragma defines in C/C++
  • many features of HTML

Note that UndefinedSemantics means exactly that, if you add #pragma explode to your C program, you are not allowed to be surprised that your toilet exploded.