For instance, the definition of division involves specifying what the result of dividing by 0 is. One can also use this value to represent the result of an arithmetic operation that overflows. Next, programmer-defined environments are introduced, where an environment is a function that maps identifiers into results. This buildup of definitions serves to handle most statement sequences, but special care must be taken when defining the meaning of a while loop. The problem is that such a loop may never terminate.
Similar care is needed in defining the evaluation rules for recursive functions.
Conclude The attempt to develop means to ensure programs are correct is laudable. I'd like to be able to buy software which comes with a guarantee that it will do a certain job, if started with specific defined input conditions. Denotational semantics defines meaning by essentially translating the program into mathematical functions. It is somewhat biased toward a functional style of programming, although its elaborate series of definitions allows variables, and even arrays and iteration. Given the time pressures on the production of software, this isn't likely to happen soon.