Discovering properties about arrays in simple programs

Abstract : Array bound checking and array dependency analysis (for parallelization) have been widely studied. However, there are much less results about analyzing properties of array contents. In this paper, we propose a way of using abstract interpretation for discovering properties about array contents in some restricted cases: one-dimensional arrays, traversed by simple "for" loops. The basic idea, borrowed from [GRS05], consists in partitioning arrays into symbolic intervals (e.g., [1,i - 1], [i,i], [i + 1,n]), and in associating with each such interval I and each array A an abstract variable AI; the new idea is to consider relational abstract properties ψ(AI, BI, ...) about these abstract variables, and to interpret such a property pointwise on the interval I: ∀l ∈ I, ψ(A[l], B[l],...). The abstract semantics of our simple programs according to these abstract properties has been defined and implemented in a prototype tool. The method is able, for instance, to discover that the result of an insertion sort is a sorted array, or that, in an array traversal guarded by a "sentinel", the index stays within the bounds.
Type de document :
Communication dans un congrès
ACM. PLDI 2008, Jun 2008, Tucson, United States. pp.339-348, 2008
Liste complète des métadonnées
Contributeur : Nicolas Halbwachs <>
Soumis le : lundi 16 juin 2008 - 11:11:01
Dernière modification le : lundi 16 juin 2008 - 11:41:33
Document(s) archivé(s) le : vendredi 28 septembre 2012 - 16:05:43


Fichiers produits par l'(les) auteur(s)


  • HAL Id : hal-00288274, version 1



Nicolas Halbwachs, Mathias Péron. Discovering properties about arrays in simple programs. ACM. PLDI 2008, Jun 2008, Tucson, United States. pp.339-348, 2008. <hal-00288274>



Consultations de
la notice


Téléchargements du document