dc.contributor.advisor | Rasghavan, K V | |
dc.contributor.author | Margoor, Amogh | |
dc.date.accessioned | 2018-03-19T08:05:04Z | |
dc.date.accessioned | 2018-07-31T04:39:00Z | |
dc.date.available | 2018-03-19T08:05:04Z | |
dc.date.available | 2018-07-31T04:39:00Z | |
dc.date.issued | 2018-03-19 | |
dc.date.submitted | 2013 | |
dc.identifier.uri | https://etd.iisc.ac.in/handle/2005/3284 | |
dc.identifier.abstract | http://etd.iisc.ac.in/static/etd/abstracts/4146/G25614-Abs.pdf | en_US |
dc.description.abstract | The problem addressed in this thesis is sound, scalable, demand-driven null-dereference verification for Java programs via over-approximated weakest preconditions analysis. The base version of this analysis having been described in a previous publication, in this thesis we focus primarily on describing two major optimizations that we have incorporated that allow for longer program paths to be traversed more efficiently, hence increasing the precision of the approach. The first optimization is to bypass certain expensive-to-analyze constructs, such as virtual calls with too many possible targets, by directly transferring dataflow facts from points after the construct to points before along def-use edges of a certain kind. The second optimization is to use manually constructed summaries of Java container class methods, rather than analyze the code of these methods directly. We evaluate our approach using 10 real world Java programs, as well as several micro benchmarks. We demonstrate that our optimizations result in a 45% reduction in false positives over the base version on the real programs, without significant impact on running time. | en_US |
dc.language.iso | en_US | en_US |
dc.relation.ispartofseries | G25614 | en_US |
dc.subject | Java (Computer Programme Language) | en_US |
dc.subject | Java Programs - Verification | en_US |
dc.subject | Java Collections | en_US |
dc.subject | Java Maps | en_US |
dc.subject | Java Programs - Base Analysis | en_US |
dc.subject | Computer Programs - Verification | en_US |
dc.subject | Java Container Class Methods | en_US |
dc.subject.classification | Computer Science | en_US |
dc.title | Improving the Precision of a Scalable Demand-Driven Null- Dereference Verification for Java | en_US |
dc.type | Thesis | en_US |
dc.degree.name | MSc Engg | en_US |
dc.degree.level | Masters | en_US |
dc.degree.discipline | Faculty of Engineering | en_US |