On inter-procedural analysis of programs with lists and data

Research output: Chapter in Book/Report/Conference proceedingConference contributionpeer-review

Abstract

We address the problem of automatic synthesis of assertions on sequential programs with singly-linked lists containing data over infinite domains such as integers or reals. Our approach is based on an accurate abstract inter-procedural analysis. Program configurations are represented by graphs where nodes represent list segments without sharing. The data in these list segments are characterized by constraints in abstract domains. We consider a domain where constraints are in a universally quantified fragment of the first-order logic over sequences, as well as a domain constraining the multisets of data in sequences. Our analysis computes the effect of each procedure in a local manner, by considering only the reachable part of the heap from its actual parameters. In order to avoid losses of information, we introduce a mechanism based on unfolding/folding operations allowing to strengthen the analysis in the domain of first-order formulas by the analysis in the multisets domain. The same mechanism is used for strengthening the sound (but incomplete) entailment operator of the domain of first-order formulas. We have implemented our techniques in a prototype tool and we have shown that our approach is powerful enough for automatic (1) generation of non-trivial procedure summaries, (2) pre/post-condition reasoning, and (3) procedure equivalence checking.

Original languageEnglish
Title of host publicationPLDI'11 - Proceedings of the 2011 ACM Conference on Programming Language Design and Implementation
PublisherAssociation for Computing Machinery
Pages578-589
Number of pages12
ISBN (Print)9781450306638
DOIs
Publication statusPublished - 1 Jan 2011
Externally publishedYes
Event32nd ACM Conference on Programming Language Design and Implementation, PLDI 2011 - San Jose, United States
Duration: 4 Jun 20118 Jun 2011

Publication series

NameProceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI)

Conference

Conference32nd ACM Conference on Programming Language Design and Implementation, PLDI 2011
Country/TerritoryUnited States
CitySan Jose
Period4/06/118/06/11

Keywords

  • assertion synthesis
  • dynamic data structures
  • interprocedural analysis

Fingerprint

Dive into the research topics of 'On inter-procedural analysis of programs with lists and data'. Together they form a unique fingerprint.

Cite this