Utente:Smallpox/Static single assignment form

In informatica static single assignment form (spesso abbreviato in SSA form o semplicemente SSA) è un termine in uso nel campo dei compilatori per denotare una rappresentazione intermedia nella quale ogni variabile dopo la sua definizione può essere assegnata una e una sola volta, dove con assegnamento e definizione intendiamo il significato standard C++. Le varibili possono essere usate in un espressione quante volte si voglia.


int a;

int a_1;

int a_2;

int b;

int b_1; //definizione

b_1 = 34;

a_1 = 12; // assegnazione (=)

a_2 = b_1 + a_1;

a = a_2;

b = a * b_1; // pseudo_ssa


Le variabili nella rappresentazione intermedia del programma originario sono sostituite con nuove variabili. Ciascuna variabile originaria è « suddivisa » in più versioni distinte, una per ciascuna definizione. Le nuove variabili sono di solito indicate con un pedice aggiunto al nome della variabile che sostituiscono. Nella forma SSA, le catene di uso e definizione di un valore sono esplicite, e ogni catena contiene una singola definizione.

{ chi l'ha sviluppato / vedere meglio autori e articoli }


Vantaggi

modifica

Conversione a forma SSA

modifica

Introduzione

modifica

Calcolo della forma SSA minima con le frontiere di dominazione

modifica

{dominance => dominazione in terminologia CFG?}

Varianti che limitano il numero di nodi Φ

modifica

Forma SSA semi-ridotta

modifica

Forma SSA ridotta

modifica

Conversione da forma SSA

modifica

Estensioni

modifica

Compilatori che utilizzano la forma SSA

modifica

Bibliografia

modifica

Voci correlate

modifica

Collegamenti esterni

modifica