A programming language is allowed to be ambiguous, I don’t know of a definition that excludes that!

All programming languages I know of provide at least some guarantees about the program’s behavior.

The language specs may be, but an implementation is never ambiguous. When you encounter and undefined behavior in the specs, that’s when you look at your compiler/interpreter docs.