Hacker News new | ask | show | jobs
Static single assignment for functional programmers (2011) (wingolog.org)
17 points by smcgivern 3960 days ago
2 comments

This is very well written. I want to mention two other IL that takes SSA even closer to a functional representation: thinned gated single-assignment (TGSA) form and the Value Dependence Graph.

I've used the former with pleasure as a lot of traditional passes become trivially done by construction: global common subexpression elimination, copy propagation, dead code elimination, and constant propagation. With very little extra work you also get strength reduction, expression hoisting, and a host of other things that I'm forgetting.

I never understood why this wasn't more popular as old-school SSA, as used by even LLVM, is so terribly clunky and inefficient.

I always love reading his blog posts. I honestly don't know how one finds the time to write that well at that length and still turn out guile et al., plus whatever his "day job" is.