In particular one thing that needs to be stated is that the primary alternative to SSA is CPS (continuation passing style) transformation. The two are roughly equivalent (at least in so far as both can be used to build compilers for the same languages), but with CPS you have to do more work to avoid ending up with lots of closure allocations that are really not necessary, so SSA feels more natural. I like to think about CPS though.