SSA (static single assignment form)

Från Rilpedia

Hoppa till: navigering, sök
Wikipedia_letter_w.pngTexten från svenska WikipediaWikipedialogo_12pt.gif
rpsv.header.diskuteraikon2.gif

Inom datavetenskapen är static single assignment form (ofta förkortat SSA form eller SSA) en representation av datorinstruktioner (intermediate code) där varje variabel tilldelas exakt en gång. Existerande variabler i den ursprungliga koden delas upp i versioner (i regel med ett index), så att varje tilldelning till en variabel får ett eget namn.

Nedan följer ett enkelt program (före övergång till SSA)

    y := 4;
    y := 2;
    x := y;
    print(x)

Efter övergång till SSA ser det ut så här

    y1 := 4;
    y2 := 2;
    x1 := y2;
    print(x1)

En stor fördel med SSA är att det är mycket lättare att skriva optimeringsalgoritmer, då man bara behöver hålla reda på var en variabel initieras och var den används. I exemplet ovan har variabeln y1 inga instruktioner i sin användningslista, vilket betyder att den kan tas bort helt ur programmet.

Det är också lätt att visa att en variabel är konstant ifall det värde som variabeln initierades med i sin tur är konstant.

SSA utvecklades av Ron Cytron, Jeanne Ferrante, Barry Rosen, Mark Wegman och Ken Zadeck (samtliga forskare på IBM) undet 1980-talet.

Källa: Engelska Wikipedia http://en.wikipedia.org/wiki/Static_single_assignment_form

Personliga verktyg
På andra språk