Вопросы к Поиску с Алисой
SSA-представление используется в некоторых языках программирования вместо CPS по разным причинам.
Для императивных языков (например, для LLVM, GNU Compiler Collection и многих коммерческих компиляторов) SSA-представление предпочтительнее CPS, так как традиционные оптимизации для таких языков легче переносятся в форму SSA, чем в CPS. en.wikipedia.org cs.stackexchange.com В частности, цепочки use-def и def-use можно «считать» непосредственно из представления SSA. cs.stackexchange.com
Для функциональных языков, таких как Scheme, ML и Haskell, CPS-представление (англ. Continuation-passing style) используется вместо SSA, потому что CPS более естественен для функций высшего порядка и межпроцедурного анализа. en.wikipedia.org Также CPS легко кодирует call/cc, в то время как SSA — нет. en.wikipedia.org
Формально SSA и CPS эквивалентны, поэтому оптимизации и трансформации, сформулированные в одном из представлений, могут быть применены и для другого. ru.ruwiki.ru ru.wikipedia.org