Strong Update for Object-Oriented Flow-Sensitive Points-To Analysis

Points-to analysis is a static analysis that approximates which memory locations each program expression may refer to. Many client analyses use points-to information to optimize compilers or reason about program security. The effectiveness of the client analyses relies on the precision of the points...

Full description

Bibliographic Details
Main Author: Chao, Ling-Ya Monica
Format: Others
Language:en
Published: Harvard University 2015
Subjects:
Online Access:http://nrs.harvard.edu/urn-3:HUL.InstRepos:14398535
id ndltd-harvard.edu-oai-dash.harvard.edu-1-14398535
record_format oai_dc
spelling ndltd-harvard.edu-oai-dash.harvard.edu-1-143985352017-07-27T15:51:33ZStrong Update for Object-Oriented Flow-Sensitive Points-To AnalysisChao, Ling-Ya MonicaComputer SciencePoints-to analysis is a static analysis that approximates which memory locations each program expression may refer to. Many client analyses use points-to information to optimize compilers or reason about program security. The effectiveness of the client analyses relies on the precision of the points-to analysis. Flow-sensitive points-to analyses compute points-to information per program point, providing additional precision over flow-insensitive points-to analyses. We present a points-to analysis for object-oriented programs that is specifically designed to enable strong update, which is particularly useful in object-oriented languages as it can enable precise reasoning about object invariants established during object construction. We enable strong update by using the recency abstraction: each allocation site is represented by two abstract objects, the most-recently-allocated object and any non-most-recently allocated objects. By definition, the fields of a most-recently-allocated abstract object correspond to a single concrete memory location and can thus be strongly updated. Our analysis is implemented for Java bytecode. It is scalable (130k lines of code can be analyzed in 92 seconds), and significantly improves the precision of some client analyses, including non-null analysis, interval analysis and cast-removal analysis, compared to of a flow-insensitive analysis.2015-04-09T13:56:00Z2015-052015-04-0820152015-04-09T13:56:00ZThesis or Dissertationtextapplication/pdfChao, Ling-Ya Monica. 2015. Strong Update for Object-Oriented Flow-Sensitive Points-To Analysis. Bachelor's thesis, Harvard College.http://nrs.harvard.edu/urn-3:HUL.InstRepos:14398535enopenhttp://nrs.harvard.edu/urn-3:HUL.InstRepos:dash.current.terms-of-use#LAAHarvard University
collection NDLTD
language en
format Others
sources NDLTD
topic Computer Science
spellingShingle Computer Science
Chao, Ling-Ya Monica
Strong Update for Object-Oriented Flow-Sensitive Points-To Analysis
description Points-to analysis is a static analysis that approximates which memory locations each program expression may refer to. Many client analyses use points-to information to optimize compilers or reason about program security. The effectiveness of the client analyses relies on the precision of the points-to analysis. Flow-sensitive points-to analyses compute points-to information per program point, providing additional precision over flow-insensitive points-to analyses. We present a points-to analysis for object-oriented programs that is specifically designed to enable strong update, which is particularly useful in object-oriented languages as it can enable precise reasoning about object invariants established during object construction. We enable strong update by using the recency abstraction: each allocation site is represented by two abstract objects, the most-recently-allocated object and any non-most-recently allocated objects. By definition, the fields of a most-recently-allocated abstract object correspond to a single concrete memory location and can thus be strongly updated. Our analysis is implemented for Java bytecode. It is scalable (130k lines of code can be analyzed in 92 seconds), and significantly improves the precision of some client analyses, including non-null analysis, interval analysis and cast-removal analysis, compared to of a flow-insensitive analysis.
author Chao, Ling-Ya Monica
author_facet Chao, Ling-Ya Monica
author_sort Chao, Ling-Ya Monica
title Strong Update for Object-Oriented Flow-Sensitive Points-To Analysis
title_short Strong Update for Object-Oriented Flow-Sensitive Points-To Analysis
title_full Strong Update for Object-Oriented Flow-Sensitive Points-To Analysis
title_fullStr Strong Update for Object-Oriented Flow-Sensitive Points-To Analysis
title_full_unstemmed Strong Update for Object-Oriented Flow-Sensitive Points-To Analysis
title_sort strong update for object-oriented flow-sensitive points-to analysis
publisher Harvard University
publishDate 2015
url http://nrs.harvard.edu/urn-3:HUL.InstRepos:14398535
work_keys_str_mv AT chaolingyamonica strongupdateforobjectorientedflowsensitivepointstoanalysis
_version_ 1718507021339197440