Differences
This shows you the differences between two versions of the page.
sav08:program_memory_as_graph [2009/03/18 10:38] vkuncak |
sav08:program_memory_as_graph [2015/04/21 17:30] |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Program Memory as a Graph ====== | ||
- | |||
- | Example state of program that inserts new element into doubly-linked list. | ||
- | |||
- | Variables in program state: | ||
- | \[ | ||
- | next,prev : Obj \to Obj | ||
- | \] | ||
- | Total functions (as in predicate logic, to make all variables well-defined). | ||
- | |||
- | Special value (constant): $null \in Obj$ | ||
- | |||
- | Local variable: $n, first \in Obj$ | ||
- | |||
- | Program state as interpretation $I = (Obj,\alpha)$ in language ${\cal L} = \{ next, prev, null \}$. | ||
- | |||
- | Values of $next,prev,n,first$ in example state: | ||
- | * before [[Insertion into Doubly-Linked List]] and | ||
- | * after | ||
- | |||
- | In general, the declared fields determine | ||
- | * function symbols, constants, and predicate symbols - if we use FOL | ||
- | * variables, if we use HOL (predicate and function symbols become variables, like variables denoting elements) | ||