Contributions à l'analyse statique de programmes manipulant des tableaux
Si l'analyse automatique des accès aux tableaux a été largement étudiée, on trouve très peu de résultats convaincants sur l'analyse du contenu des tableaux. Pour une telle analyse, les analyses numériques sont centrales. Notamment, si l'on découvre l'invariant i ≠ j, on évite d...
Main Author: | |
---|---|
Language: | FRE |
Published: |
Université de Grenoble
2010
|
Subjects: | |
Online Access: | http://tel.archives-ouvertes.fr/tel-00623697 http://tel.archives-ouvertes.fr/docs/00/62/36/97/PDF/mathias.peron.pdf |
id |
ndltd-CCSD-oai-tel.archives-ouvertes.fr-tel-00623697 |
---|---|
record_format |
oai_dc |
spelling |
ndltd-CCSD-oai-tel.archives-ouvertes.fr-tel-006236972013-01-07T17:34:20Z http://tel.archives-ouvertes.fr/tel-00623697 http://tel.archives-ouvertes.fr/docs/00/62/36/97/PDF/mathias.peron.pdf Contributions à l'analyse statique de programmes manipulant des tableaux Péron, Mathias [INFO] Computer Science analyse statique interprétation abstraite non-égalités numériques contenu des tableaux Si l'analyse automatique des accès aux tableaux a été largement étudiée, on trouve très peu de résultats convaincants sur l'analyse du contenu des tableaux. Pour une telle analyse, les analyses numériques sont centrales. Notamment, si l'on découvre l'invariant i ≠ j, on évite d'affaiblir la connaissance sur a[j] lors d'une affectation à a[i]. Nous proposons une nouvelle analyse numérique faiblement relationnelle, combinant des contraintes de zones (x - y ≤ c ou ±x ≤ c) à des contraintes de non-égalités (x ≠ y ou x ≠ 0). Cette analyse a une complexité en O(n4), si les variables prennent leur valeurs dans un ensemble dense. Dans le cas arithmétique, décider de la satisfaisabilité d'une conjonction de telles contraintes est un problème NP-complet. Nous proposons une analyse en O(n4) également pour ce cas. Au cœur des analyses du contenu des tableaux on trouve aussi des analyses de partitionnement symbolique. Pour une boucle " for i = 1 to n ", où un tableau est accédé à la cellule i, il est nécessaire de considérer le contenu des tableaux sur les tranches [1, i - 1], [i, i] et [i + 1, n] pour être précis. Nous définissons une analyse de partitionnement sémantique, puis une analyse du contenu des tableaux basée sur ses résultats. Cette dernière associe à chaque tranche φ une propriété ψ dont les variables représentent le contenu des tableaux sur cette tranche. La propriété ψ est interprétée cellule-par-cellule, ainsi pour φ = [1, i - 1] et ψ = (a = b + 1) il est exprimé que ∀ k ∈ [1, i - 1], a[k] = b[k] + 1. Les résultats expérimentaux montrent que notre analyse automatique est efficace et précise, sur une classe de programmes simples : tableaux unidimensionnels, indexés par une variable au plus (x + c ou c), traversés par des boucles, imbriquées ou non, avec des compteurs suivant une progression arithmétique. Elle découvre par exemple que le résultat d'un tri par insertion est un tableau trié, ou que durant le parcours d'un tableau gardé par une "sentinelle", tous les accès à ce tableau sont corrects. 2010-09-22 FRE PhD thesis Université de Grenoble |
collection |
NDLTD |
language |
FRE |
sources |
NDLTD |
topic |
[INFO] Computer Science analyse statique interprétation abstraite non-égalités numériques contenu des tableaux |
spellingShingle |
[INFO] Computer Science analyse statique interprétation abstraite non-égalités numériques contenu des tableaux Péron, Mathias Contributions à l'analyse statique de programmes manipulant des tableaux |
description |
Si l'analyse automatique des accès aux tableaux a été largement étudiée, on trouve très peu de résultats convaincants sur l'analyse du contenu des tableaux. Pour une telle analyse, les analyses numériques sont centrales. Notamment, si l'on découvre l'invariant i ≠ j, on évite d'affaiblir la connaissance sur a[j] lors d'une affectation à a[i]. Nous proposons une nouvelle analyse numérique faiblement relationnelle, combinant des contraintes de zones (x - y ≤ c ou ±x ≤ c) à des contraintes de non-égalités (x ≠ y ou x ≠ 0). Cette analyse a une complexité en O(n4), si les variables prennent leur valeurs dans un ensemble dense. Dans le cas arithmétique, décider de la satisfaisabilité d'une conjonction de telles contraintes est un problème NP-complet. Nous proposons une analyse en O(n4) également pour ce cas. Au cœur des analyses du contenu des tableaux on trouve aussi des analyses de partitionnement symbolique. Pour une boucle " for i = 1 to n ", où un tableau est accédé à la cellule i, il est nécessaire de considérer le contenu des tableaux sur les tranches [1, i - 1], [i, i] et [i + 1, n] pour être précis. Nous définissons une analyse de partitionnement sémantique, puis une analyse du contenu des tableaux basée sur ses résultats. Cette dernière associe à chaque tranche φ une propriété ψ dont les variables représentent le contenu des tableaux sur cette tranche. La propriété ψ est interprétée cellule-par-cellule, ainsi pour φ = [1, i - 1] et ψ = (a = b + 1) il est exprimé que ∀ k ∈ [1, i - 1], a[k] = b[k] + 1. Les résultats expérimentaux montrent que notre analyse automatique est efficace et précise, sur une classe de programmes simples : tableaux unidimensionnels, indexés par une variable au plus (x + c ou c), traversés par des boucles, imbriquées ou non, avec des compteurs suivant une progression arithmétique. Elle découvre par exemple que le résultat d'un tri par insertion est un tableau trié, ou que durant le parcours d'un tableau gardé par une "sentinelle", tous les accès à ce tableau sont corrects. |
author |
Péron, Mathias |
author_facet |
Péron, Mathias |
author_sort |
Péron, Mathias |
title |
Contributions à l'analyse statique de programmes manipulant des tableaux |
title_short |
Contributions à l'analyse statique de programmes manipulant des tableaux |
title_full |
Contributions à l'analyse statique de programmes manipulant des tableaux |
title_fullStr |
Contributions à l'analyse statique de programmes manipulant des tableaux |
title_full_unstemmed |
Contributions à l'analyse statique de programmes manipulant des tableaux |
title_sort |
contributions à l'analyse statique de programmes manipulant des tableaux |
publisher |
Université de Grenoble |
publishDate |
2010 |
url |
http://tel.archives-ouvertes.fr/tel-00623697 http://tel.archives-ouvertes.fr/docs/00/62/36/97/PDF/mathias.peron.pdf |
work_keys_str_mv |
AT peronmathias contributionsalanalysestatiquedeprogrammesmanipulantdestableaux |
_version_ |
1716396302418313216 |