Denotational Semantics


Consider a strange loop structure we will call "do_all_true". Let's define a more complete language using this loop structure:

This language has variables and an assignment statement, but expressions do not have side effects when they are evaluated. Only commands affect the storage locations. We will assume that programs compute integer functions.

Develop a full denotational definition for this language. That means adding to the syntax information above these parts: value domains, semantic functions, and semantic equations.

Much of this will be modification/combination of the examples we did in class, but you will have to create for yourself some believable denotational definition for the do_all_true loop, using these informal semantics :