Pointer analysis for Java programs : novel techniques and applications
Thesis (Ph. D.)--Massachusetts Institute of Technology, Dept. of Electrical Engineering and Computer Science, 2006.
Main Author: | |
---|---|
Other Authors: | |
Format: | Thesis |
Language: | eng |
Published: |
Massachusetts Institute of Technology
2007
|
Subjects: | |
Online Access: | http://hdl.handle.net/1721.1/38311 |
_version_ | 1826212441256624128 |
---|---|
author | Sălcianu, Alexandru D. (Alexandru Doru), 1975- |
author2 | Martin C. Rinard. |
author_facet | Martin C. Rinard. Sălcianu, Alexandru D. (Alexandru Doru), 1975- |
author_sort | Sălcianu, Alexandru D. (Alexandru Doru), 1975- |
collection | MIT |
description | Thesis (Ph. D.)--Massachusetts Institute of Technology, Dept. of Electrical Engineering and Computer Science, 2006. |
first_indexed | 2024-09-23T15:21:43Z |
format | Thesis |
id | mit-1721.1/38311 |
institution | Massachusetts Institute of Technology |
language | eng |
last_indexed | 2024-09-23T15:21:43Z |
publishDate | 2007 |
publisher | Massachusetts Institute of Technology |
record_format | dspace |
spelling | mit-1721.1/383112019-04-11T09:36:03Z Pointer analysis for Java programs : novel techniques and applications Sălcianu, Alexandru D. (Alexandru Doru), 1975- Martin C. Rinard. Massachusetts Institute of Technology. Dept. of Electrical Engineering and Computer Science. Massachusetts Institute of Technology. Dept. of Electrical Engineering and Computer Science. Electrical Engineering and Computer Science. Thesis (Ph. D.)--Massachusetts Institute of Technology, Dept. of Electrical Engineering and Computer Science, 2006. Includes bibliographical references (p. 193-200). This dissertation presents a pointer analysis for Java programs, together with several practical analysis applications. For each program point, the analysis is able to construct a points-to graph that describes how local variables and object fields point to objects. Each points-to graph also contains escape information that identifies the objects that are reachable from outside the analysis scope. Our pointer analysis can extract correct information by analyzing only parts of a whole program. First, our analysis analyzes a method without requiring information about its calling context. Instead, our analysis computes parameterized results that are later instantiated for each relevant call site. Second, our analysis correctly handles calls to unanalyzable methods (e.g., native methods). Hence, our analysis can trade precision for speed without sacrificing correctness: if the analysis of a call to a specific callee requires too much time, the analysis can treat that callee as unanalyzable. The results of our analysis enable standard program optimizations like the stack allocation of local objects. More interestingly, this dissertation explains how to extend the analysis to detect pure methods. (cont.) Our analysis supports a flexible definition of method purity: a method is pure if it does not mutate any object that exists in the program state before the start of the method. Therefore, our analysis allows pure methods to allocate and mutate temporary objects (e.g., iterators) and/or construct complex object structures and return them as a result. by Alexandru D. Sălcianu. Ph.D. 2007-08-03T18:28:48Z 2007-08-03T18:28:48Z 2006 2006 Thesis http://hdl.handle.net/1721.1/38311 154028847 eng M.I.T. theses are protected by copyright. They may be viewed from this source for any purpose, but reproduction or distribution in any format is prohibited without written permission. See provided URL for inquiries about permission. http://dspace.mit.edu/handle/1721.1/7582 200 p. application/pdf Massachusetts Institute of Technology |
spellingShingle | Electrical Engineering and Computer Science. Sălcianu, Alexandru D. (Alexandru Doru), 1975- Pointer analysis for Java programs : novel techniques and applications |
title | Pointer analysis for Java programs : novel techniques and applications |
title_full | Pointer analysis for Java programs : novel techniques and applications |
title_fullStr | Pointer analysis for Java programs : novel techniques and applications |
title_full_unstemmed | Pointer analysis for Java programs : novel techniques and applications |
title_short | Pointer analysis for Java programs : novel techniques and applications |
title_sort | pointer analysis for java programs novel techniques and applications |
topic | Electrical Engineering and Computer Science. |
url | http://hdl.handle.net/1721.1/38311 |
work_keys_str_mv | AT salcianualexandrudalexandrudoru1975 pointeranalysisforjavaprogramsnoveltechniquesandapplications |