Contraintes non-anes
Numerotons chaque contrainte non-ane du programme. Etant donne une contrainte non-ane
c
h, on note Th l'instruction dans laquelle elle appara^t. Cette instruction est soit une conditionnelle (branche((vrai))ou branche((faux))), soit une boucle si ces bornes sont non-anes, soit une aectation a un tableau avec des indices non-anes. La valeur dec
h depend des compte-tours englo-bantTh, eventuellement du vecteur d'iteration de la lecture dont on cherche la source sic
h est l'equation d'indices, et siTh est unwhile,c
h depend alors aussi du compte-tours du while. Par consequent, six
2 Qk(y
) ou Qk(y
) est l'en-semble des vecteurs d'iteration des candidats sources de l'instruction Sk, alorsc
h(x
[1::e
h];y
) = vrai, avece
h =d
Th ou
d
Th + 1 si Th est un while. Suivant la precision que l'on cherche a atteindre, la contrainte non-ane
c
h peut s'ecrire soit comme un predicat, soit comme une inegalite:c
h(x;y
) =a
h(x;y
) +Xk
n
k(x;y
)0!
;
avec
a
h une forme ane etn
k des fonctions non-anes. Il faut noter que lesn
k peuvent ^etre des variables qui ne sont pas des compte-tours.Denition 2 (Domaine de parametres)
Soient Ck l'ensemble des indices des contraintes non-anes apparaissant dans la denition de Qk(y
) etm
k = maxh2C ke
h. L'ensemble: Dk(y
) = 8 < :x
x
2Zmk;
^ h2C kc
h(x
[1::e
h];y
) 9 = ;;
est l'ensemble de vecteurs d'iteration de dimension
m
k pour lesquels toutes les contraintes indexees par Ck sont vraies. Cet ensemble est appele domaine de parametres associe a la dependance entre une instance de Sk ethR;y
i.Parametrage de la source
On rappelle la denition de la source:
(y
) = max1 in0 max pdS k R Sk;
maxQ p k(y
):
L'idee du parametrage de la source est simple : intuitivement, plus on retardera le moment de l'approximation dans le calcul, plus on a de chances qu'elle soit meilleure. On va donc introduire des parametres representant les contraintes non-anes dans l'expression de la source, an de pouvoir calculer l'expression de la source en fonction de ces parametres puis faire l'approximation. On verra par la suite que l'introduction de parametres a egalement d'autres avantages.
IV. ANALYSE APPROCH
EE DEFLOT 31
L'ensemble Q p
k(
y
) peut clairement s'ecrire comme l'intersection de l'en-semble des vecteurs d'iteration veriant les contraintes anes de Qp k(
y
),Lp k(
y
), et de l'ensemble des vecteurs d'iteration veriant les contraintes non-anes deQ p k(
y
): Q p k(y
) =L p k(y
)\fz
jz
[1::m
k]2Dk(y
)g:
Posons maintenant ^Q p k(x;y
) =L p k(y
)\fz
jz
[1::m
k] =x
g. On a partitionneQ p k(y
) en autant de sous-ensembles que d'elements deDk(y
):Qp k(
y
) = [ x2D k(y)Q^ p k(x;y
):
Par consequent, maxQ p k(y
) = maxx 2D k(y)max ^Q p k(x;y
):
(1)La valeur du maximum est atteinte pour un
x
de Dk(y
).Denition 3 (Parametre du maximum)
Le vecteur pour lequel le maxi-mum de (1) est atteint est appele parametre du maximum de Dk(y
) pour Ska la profondeur
p
et est note pk(y
). Si le maximum n'existe pas, on donne a pk(y
) la valeur ?. De plus, par denition de ^Q p k(x;y
), p k(y
) = maxL p k(y
)jmk \Dk(y
):
L'ensembleL p k(y
)jmkest la projection deL pk(
y
) surZmk. L'expression parametree de la source est alors: (y
) = max1 kn0 max pdS k R D Sk;
max ^Q p k(pk(y
);y
)E:
(2) Remarquons que cette expression est calculable en fonction de pk(
y
) avec les m^emes techniques que celles utilisees dans le cas exact. De plus, lorsqu'il n'y a pas de contrainte non-ane dans la denition de la source, alors pk(y
) = maxLp
k(
y
)jmk et la source est exacte. Ainsi, l'analyse exacte de la section III est bien un cas particulier de la FADA.Flou du resultat
Aucune approximation n'a ete faite lors du parametrage de la source. Les parametres du maximum ne peuvent pas ^etre calcules mais l'expression de la source (2) peut ^etre utilisee telle quelle a l'execution pour determiner dynami-quement la source exacte d'une variable, si les parametres du maximum sont calcules et mis a jour dynamiquement egalement. On n'envisagera pas cette utilisation possible de la source par la suite.
Une approximation tres simple consiste a donner aux parametres toutes les valeurs possibles et de considerer l'ensemble des sources decrit de cette facon comme l'ensemble des sources possibles. Une telle approximation est clairement conservative, mais le resultat de l'analyse est alors tres ou.
Pour ameliorer cette approximation, on peut chercher des proprietesP sur les contraintes non-anes. De ces proprietes, on va deduire des proprietes ^Psur les parametres du maximum, puis on va calculer l'ensemble des sources possibles en donnant aux parametres toutes les valeurs permises par les proprietes ^P. On va donc proceder en trois etapes:
1. Des proprietesPsont trouvees par une analyse des contraintes non-anes du programme. Plus la description de ces contraintes est precise, plus l'ensemble decrit par P est petit. La gure 1 represente le cas ou une
contraintes denies par P
c c
Fig. 1 - Approximation d'une contrainte.
seule contrainte
c
intervient dans l'expression de la source.c
verie les proprietesP, ce qui garantit que l'analyse est conservative.2. Les proprietes ^P sont derivees deP. Les proprietes sur les parametres du maximum sont des consequences des proprietes P, an de garantir que l'analyse est toujours conservative. Cette traduction dePen ^Ppermet de ne retenir de P que les informations qui sont utiles pour le calcul de la source. Le but est de montrer que, comme sur la gure 2, chaque vecteur veriant ^P est le parametre du maximum d'une contrainte veriant P, c'est-a-dire que l'on n'a pas perdu de precision durant la traduction. 3. Enn, on construit la source parametrique et l'on considere toutes les
valeurs possibles de cette source pour tous les parametres veriant ^P:
S(
y
) =1max km0 max pdS k R D Sk;
Q^ p k(x
pk;y
)Ex
pk 2Zmk;
P^ ?::: ;x
pk;:::
:
Cet ensemble est calculable si les proprietes ^P sont anes. Comme le montre la gure 3, a chaque parametre veriant ^P correspond une source possible, parmi lesquelles se trouve la source exacte.
IV. ANALYSE APPROCH
EE DEFLOT 33
contraintes denies parP ensemble deni par ^P
c
pk(y
)Fig. 2 - Traduction de P en ^P.
ensemble deni par ^P ensemble de sources
pk(y
) (y
)Fig.3 - Calcul de l'ensemble de sources.