Utente:Smallpox/Static single assignment form

Da Wikipedia, l'enciclopedia libera.
Vai alla navigazione Vai alla ricerca

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 | modifica wikitesto]

Conversione a forma SSA[modifica | modifica wikitesto]

Introduzione[modifica | modifica wikitesto]

Calcolo della forma SSA minima con le frontiere di dominazione[modifica | modifica wikitesto]

{dominance => dominazione in terminologia CFG?}

Varianti che limitano il numero di nodi Φ[modifica | modifica wikitesto]

Forma SSA semi-ridotta[modifica | modifica wikitesto]

Forma SSA ridotta[modifica | modifica wikitesto]

Conversione da forma SSA[modifica | modifica wikitesto]

Estensioni[modifica | modifica wikitesto]

Compilatori che utilizzano la forma SSA[modifica | modifica wikitesto]

Bibliografia[modifica | modifica wikitesto]

Voci correlate[modifica | modifica wikitesto]

Collegamenti esterni[modifica | modifica wikitesto]