next up previous
Next: Control Up: Data Structures Previous: Logical expressions

States

A state is an assignment of values to variables. More precisely, a state tex2html_wrap_inline1340 is a family of mappings tex2html_wrap_inline1342 . Given a variable x of type s, we write tex2html_wrap_inline1348 instead of tex2html_wrap_inline1350 . The canonical extension of tex2html_wrap_inline1340 to a map from terms to values is also denoted by tex2html_wrap_inline1340 . (In functional programming terminology this extension is often called eval tex2html_wrap_inline1356 .)

Given state tex2html_wrap_inline1340 , variable v and value M we let tex2html_wrap_inline1364 denote the ``new'' state tex2html_wrap_inline1366 with tex2html_wrap_inline1368 , and tex2html_wrap_inline1370 for every tex2html_wrap_inline1372 . Observe that for any state tex2html_wrap_inline1340 , terms t,r and variable v :

displaymath1338

Unfortunately, it turns out that any sufficiently rich model of computation will allow calculations that never terminate. We therefore include a pseudo-state tex2html_wrap_inline1380 , pronounced ``bottom'' or ``undefined''. A nonterminating computation is then said to return tex2html_wrap_inline1380 .



H.Peter Gumm