SSA is functional programming

Andrew W. Appel · ACM SIGPLAN Notices · 1998

Static Single-Assignment (SSA) form is an intermediate language designed to make optimization clean and efficient for imperative-language (Fortran, C) compilers. Lambda-calculus is an intermediate language that makes optimization clean and efficient for functional language (Scheme, ML, Haskell) compilers. The SSA community draws pictures of graphs with basic blocks and flow edges, and the functional-language community writes lexically nested functions, but (as Richard Kelsey recently pointed out) they’re both doing exactly the same thing in different notation.

Read the paper · More papers on PaperTik