@apostolis @david_chisnall These issues seem different to me. The issue here is not that of ambiguity (one program means multiple things) but of backwards incompatibility, something natural languages suffer of as well (older writing are archaic at best, if not unreadable to the lay person).
In theory, one can write a compiler that translates valid programs in an older version of the language to programs in newer versions. I have used such compilers in the past. In practice, it's too much work to do it as the language evolves, and instead we manually update each program, or try to make changes backward compatible.
@ohad
Let me rephrase what I am trying to say.
Ambiguity exists in the natural world anyway. Human beings have the ability to understand the world and to create formal systems that are précise (more or less so)
Part of what we are , our intelligence, is to be able to handle ambiguity.
(Also, multiple mutations in the DNA of a cell do not lead to failure)
Computers on the other hand can't do that, at the moment! Is there a solution of this?
@david_chisnall