Conference item icon

Conference item

On abstraction refinement for program analyses in Datalog

Abstract:
A central task for a program analysis concerns how to efficiently find a program abstraction that keeps only information relevant for proving properties of interest. We present a new approach for finding such abstractions for program analyses written in Datalog. Our approach is based on counterexample-guided abstraction refinement: when a Datalog analysis run fails using an abstraction, it seeks to generalize the cause of the failure to other abstractions, and pick a new abstraction that avoids a similar failure. Our solution uses a boolean satisfiability formulation that is general, complete, and optimal: it is independent of the Datalog solver, it generalizes the failure of an abstraction to as many other abstractions as possible, and it identifies the cheapest refined abstraction to try next. We show the performance of our approach on a pointer analysis and a typestate analysis, on eight real-world Java benchmark programs.
Publication status:
Published
Peer review status:
Reviewed (other)

Actions


Access Document


Publisher copy:
10.1145/2594291.2594327

Authors


More by this author
Institution:
University of Oxford
Division:
MPLS
Department:
Computer Science
Role:
Author
More by this author
Institution:
University of Oxford
Division:
MPLS
Department:
Computer Science
Role:
Author


Publisher:
Association for Computing Machinery
Host title:
Proceedings of the 35th ACM SIGPLAN Conference on Programming Language Design and Implementation
Journal:
Proceedings of the 35th ACM SIGPLAN Conference on Programming Language Design and Implementation More from this journal
Pages:
239-248
Publication date:
2014-09-06
Acceptance date:
2014-02-05
DOI:
EISSN:
1558-1160
ISBN:
9781450327848


Pubs id:
pubs:581044
UUID:
uuid:710dac26-71b2-4d1b-b2c2-b952d145095e
Local pid:
pubs:581044
Source identifiers:
581044
Deposit date:
2016-01-03

Terms of use



Views and Downloads






If you are the owner of this record, you can report an update to it here: Report update to this record

TO TOP