Comment by thaumasiotes

4 months ago

Those occur when you've made an unambiguous statement that has no valid semantics. ("God should get a promotion."†) They don't occur when you've made an ambiguous statement ("We saw her duck.") As I noted above, it isn't possible to make an ambiguous statement.

† I'm aware that that isn't an unambiguous statement. This is for the simple reason that it's next to impossible to make an unambiguous statement in a natural language; that's why legal documents use so many clauses. I'm relying on the reader here to realize which meaning I had in mind, which is the way all natural language works.

The case "God should get a promotion" if I understand correctly, is soundness (as in Rust) issue, with equivalent in C: `int increment(int x) { x + 1; }` - sound, not valid.

The case with legal documents is equivalent in C sequence points for comma operator with something like `print(i++, i++)`. Imagine Boeing documentation with text "In case of blinking indicator press button A and stop immediately". Button "A and stop"? Button "stop" after button A? Authors can hope that a sane human can resolve this ambiguity, but if it is done by compiler/interpreter/robot, it can have an avalanche effect.