| | |
Summary: SIGPLAN
ACM
Functional Programming
Editor: Philip Wadler, Bell Laboratories, Lucent Technologies; wadler@research.bell-labs.com
SSA is Functional Programming
Andrew W. Appel
Static Single-Assignment (SSA) form is an intermedi-
ate language designed to make optimization clean and
efficient for imperative-language (Fortran, C) compil-
ers. 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 [9]) they're both doing exactly the
same thing in different notation.
SSA form. Many dataflow analyses need to find the
use-sites of each defined variable or the definition-sites
of each variable used in an expression. The def-use chain
|