Abstractions from tests

Mayur Naik, Hongseok Yang, Ghila Castelnuovo, Mooly Sagiv

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

Abstract

We present a framework for leveraging dynamic analysis to find good abstractions for static analysis. A static analysis in our framework is parametrised. Our main insight is to directly and efficiently compute from a concrete trace, a necessary condition on the parameter configurations to prove a given query, and thereby prune the space of parameter configurations that the static analysis must consider. We provide constructive algorithms for two instance analyses in our framework: a flow- and context-sensitive thread-escape analysis and a flow- and context-insensitive points-to analysis. We show the efficacy of these analyses, and our approach, on six Java programs comprising two million bytecodes: the thread-escape analysis resolves 80% of queries on average, disproving 28% and proving 52%; the points-to analysis resolves 99% of queries on average, disproving 29% and proving 70%.

Original languageEnglish
Title of host publicationPOPL'12 - Proceedings of the 39th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages
Pages373-385
Number of pages13
DOIs
StatePublished - 2012
Event39th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL'12 - Philadelphia, PA, United States
Duration: 25 Jan 201227 Jan 2012

Publication series

NameConference Record of the Annual ACM Symposium on Principles of Programming Languages
ISSN (Print)0730-8566

Conference

Conference39th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL'12
Country/TerritoryUnited States
CityPhiladelphia, PA
Period25/01/1227/01/12

Keywords

  • Necessary-condition problem
  • Parametrised static analysis
  • Points-to analysis
  • Testing
  • Thread-escape analysis

Fingerprint

Dive into the research topics of 'Abstractions from tests'. Together they form a unique fingerprint.

Cite this