thesis

Analyse semantique des programmes en langage c en vue de leur parallelisation

Defense date:

Jan. 1, 1991

Edit

Institution:

Paris 6

Disciplines:

Authors:

Directors:

Abstract EN:

Pas de résumé disponible.

Abstract FR:

Les recherches dans le domaine de la parallelisation automatique se sont concentrees sur le langage fortran. Or, ce langage souffre de defauts qui le rendent inadapte a un certain nombre de problemes. Le but de notre etude est la detection automatique de parallelisme en langage c. Le probleme est complexe puisque le langage c dispose de nombreuses constructions destinees a faciliter une ecriture optimisee sur une architecture traditionnelle, et en particulier les pointeurs, l'arithmetique sur ces pointeurs et les expressions avec effets de bord. Notre approche consiste a desoptimiser le programme pour en faciliter l'analyse semantique. Dans un premier temps, nous definissons un sous-ensemble du langage c sans appel de fonctions ni coercitions, mais en acceptant toutes les expressions avec effets de bord. L'absence de coercitions nous permet de definir une structuration de la memoire suivant le systeme de types du langage. Dans un deuxieme temps, nous transformons les boucles for, qui ont en langage c une semantique tres complexe, en boucles while, puis nous retirons les effets de bord des expressions. Enfin, nous procedons a une evaluation symbolique du programme pour un extraire une suite de transformations, c'est-a-dire des substitutions gardees par des expressions logiques. Ce calcul est direct et precis pour les sequences lineaires, mais nous devons proceder a des approximations pour les boucles. Un des sous-produits de cette analyse est l'identification de celles des boucles while qui ont une semantique de boucle do de fortran. A partir de la, il nous est possible de nous interfacer avec un paralleliseur classique