The Value State Dependence Graph (VSDG) is a high-level intermediate representation for software procedures. It represents values as having an operation plus inputs plus a virtual "state" input used to ensure the ordering of side-effects is explicitly maintained. It makes many optimizations simple, but is very difficult to convert into linear code efficiently.
This technical report describes in detail the VSDG, the PDG (program dependence graph), and CFG (control-flow graph) program representations. It describes a way to generate a PDG from a VSDG, and a CFG from a PDG, resulting in a linear program from a VSDG.