ACM Home Page
Please provide us with feedback. Feedback
Digital Library logoTake a look at the new version of this page: [ beta version ]. Tell us what you think.
Discovering properties about arrays in simple programs
Full text PdfPdf (299 KB)
Source
Conference on Programming Language Design and Implementation archive
Proceedings of the 2008 ACM SIGPLAN conference on Programming language design and implementation table of contents
Tucson, AZ, USA
SESSION: Session XI table of contents
Pages: 339-348  
Year of Publication: 2008
ISBN:978-1-59593-860-2
Also published in ...
Authors
Nicolas Halbwachs  Verimag - CNRS, Grenoble, France
Mathias Péron  Verimag - CNRS, Grenoble, France
Sponsors
ACM: Association for Computing Machinery
SIGPLAN: ACM Special Interest Group on Programming Languages
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 15,   Downloads (12 Months): 128,   Citation Count: 1
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1375581.1375623
What is a DOI?

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: ∀lI, ψ(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.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
R. Alur, C. Courcoubetis, and D. L. Dill. Model-checking in dense real-time. Information and Computation, 104(1):2--34, 1993. Preliminary version appears in the Proc. of 5th LICS, 1990.
 
2
A. Bouajjani, M. Bozga, P. Habermehl, R. Iosif, P. Moro, and T. Vojnar. Programs with lists are counter automata. In Computer Aided Verification (CAV 2006), pages 517--531. LNCS 4144, Springer Verlag, July 2006.
3
4
 
5
S. Bardin, J. Leroux, and G. Point. Tool presentation: Fast extended release. In 18th Conf. Computer Aided Verification (CAV'2006), pages 63--66, Seattle (Washington), 2006. LNCS 4144, Springer-Verlag.
 
6
A. R. Bradley, Z. Manna, and H. B. Sipma. What's decidable about arrays? In E. A. Emerson and K. S. Namjoshi, editors, VMCAI 06, pages 427--442. LNCS 3855, Springer Verlag, 2006.
 
7
P. Cousot and R. Cousot. Static determination of dynamic properties of programs. In 2nd Int. Symp. on Programming. Dunod, Paris, 1976.
 
8
R. C. Claris and J. Cortadella. Verification of parametric timed circuits using octahedra. In Designing correct circuits, DCC'04, Barcelona, March 2004.
9
 
10
P. Cousot. Verification by abstract interpretation. In N. Dershowitz, editor, Proc. Int. Symp. on Verification - Theory & Practice - Honoring Zohar Manna's 64th Birthday, pages 243--268, Taormina, Italy, June 29 - July 4 2003. (c) Springer-Verlag, Berlin, Germany.
 
11
12
 
13
D. Gopan, F. Di Maio, N. Dor, T. Reps, and M. Sagiv. Numeric domains with summarized dimensions. In TACAS'04, pages 512--529, Barcelona, 2004.
 
14
S. Gulwani, B. McCloskey, and A. Tiwari. Lifting abstract interpreters to quantified logical domains. In G. C. Necula and P. Wadler, editors, POPL 2008, pages 235--246. ACM, 2008.
 
15
16
17
 
18
R. Iosif, P. Habermehl, and T. Vojnar. What else is decidable about arrays? In R. Amadio, editor, FOSSACS 2008. LNCS, Springer Verlag, 2008.
 
19
R. Jhala and K. L. McMillan. Array abstractions from proofs. In W. Damm and H. Hermanns, editors, CAV 2007, pages 193--206. LNCS 4590, Springer Verlag, 2007.
 
20
S. K. Lahiri and R. E. Bryant. Indexed predicate discovery for unbounded system verification. In R. Alur and D. Peled, editors, CAV 2004, pages 135--147. LNCS 3114, Springer Verlag, 2004.
 
21
S. K. Lahiri, R. E. Bryant, and B. Cook. A symbolic approach to predicate abstraction. In W. A. Hunt Jr. and F. Somenzi, editors, CAV 2003, pages 141--153. LNCS 2725, Springer Verlag, 2003.
22
 
23
 
24
M. Péron and N. Halbwachs. An abstract domain extending Difference-Bound Matrices with disequality constraints. In B. Cook and A. Podelski, editors, 8th International Conference on Verification, Model-checking, and Abstract Intepretation, VMCAI'07, Nice, France, January 2007.


Collaborative Colleagues:
Nicolas Halbwachs: colleagues
Mathias Péron: colleagues