Static Single Assignment Form

In compiler design, static single assignment form (often abbreviated as SSA form or simply SSA) is a property of an intermediate representation (IR), which says that each variable is assigned exactly once. Existing variables in the original IR are split into versions, new variables typically indicated by the original name with a subscript in textbooks, so that every definition gets its own version. In SSA form, use-def chains are explicit and each contains a single element.

SSA was developed by Ron Cytron, Jeanne Ferrante, Barry K. Rosen, Mark N. Wegman, and F. Kenneth Zadeck, researchers at IBM in the 1980s.

In functional language compilers, such as those for Scheme, ML and Haskell, continuation-passing style (CPS) is generally used while one might expect to find SSA in a compiler for Fortran or C. SSA is formally equivalent to a well-behaved subset of CPS (excluding non-local control flow, which does not occur when CPS is used as intermediate representation), so optimizations and transformations formulated in terms of one immediately apply to the other.

Read more about Static Single Assignment Form:  Benefits, Converting To SSA, Variations That Reduce The Number of Φ Functions, Converting Out of SSA Form, Extensions, Compilers Using SSA Form

Famous quotes containing the words single and/or form:

    And though all streams flow from a single course to cleanse the blood from polluted hand, they hasten on their course in vain.
    Aeschylus (525–456 B.C.)

    I have come to believe ... that the stage may do more than teach, that much of our current moral instruction will not endure the test of being cast into a lifelike mold, and when presented in dramatic form will reveal itself as platitudinous and effete. That which may have sounded like righteous teaching when it was remote and wordy will be challenged afresh when it is obliged to simulate life itself.
    Jane Addams (1860–1935)