Aller au contenu

Static single assignment form

Un article de Wikipédia, l'encyclopédie libre.
Ceci est une version archivée de cette page, en date du 14 février 2010 à 23:16 et modifiée en dernier par JnRouvignac (discuter | contributions) (Ajouts liens interlangue). Elle peut contenir des erreurs, des inexactitudes ou des contenus vandalisés non présents dans la version actuelle.

En compilation, Static single assignement form (abrégé en SSA) est une représentation intermédiaire du code source d'un programme dont la particularité est de ne permettre à une variable d'être affectée qu'une et une seule fois.

Benefices

L'intérêt principal de SSA est la simplification et l'amélioration des résultats de nombreuses optimisations, en simplifiant les propriétés des variables. Par exemple, soit le code suivant:

y := 1
y := 2
x := y

Les humains peuvent voir que la première affectation n'est pas nécessaire, car la valeur de y utilisée à la troisième ligne vient de la deuxième affectation de y. Un programme devrait faire une analyse d'atteinte des définitions pour le déterminer. Mais si le programme est sous la forme SSA, alors c'est immédiat:

y1 := 1
y2 := 2
x1 := y2

Les algorithmes d'optimisations des compilateurs autorisés ou bien largement améliorés par l'utilisation de la forme SSA incluent:


Modèle:Palette programmation informatique