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...
Main Author: | |
---|---|
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 |