4 ms·
Some other names that I've encountered for these kinds of programming constructs: * simulation variables (presumably because the separation into x/x' is simila
by 314 4y ago
Some other names that I've encountered for these kinds of programming constructs:
* simulation variables (presumably because the separation into x/x' is similar to the now/next calculation of state in a lot of simulations).
* SSA (although there is a subtle difference as x' becoming x in the next period isn't really SSA without some extra edges in the graph).
I wonder how phi nodes would fit into the author's scheme?
- mrkeen 4y agoCan't speak for the author but I believe 'phi nodes' map to 'join points' in function land: https://www.microsoft.com/en-us/research/publication/compiling-without-continuations/ https://www.microsoft.com/en-us/research/publication/compili...
- aappleby 4y agoAuthor here. I've commented on SSA and simulations (in the context of gamedev) elsewhere in this thread. Regarding phi nodes, they represent a "merge" of two possible execution branches. In C++ you evaluate one side of the if() branch and ignore the other based on the predicate and the "phi" (sometimes called "phony") function then copies the result from the selected branch to the new SSA variable. In a language like Verilog, you evaluate _both_ branches and the phi node is effectively a "mux gate" that selects between the two branch results based on the predicate.