1992
DOI: 10.1007/3-540-55984-1_22
|View full text |Cite
|
Sign up to set email alerts
|

Compile-time analysis of object-oriented programs

Abstract: Abstract. Generation of efficient code for object-oriented programs requires knowledge of object lifetimes and method bindings. For object-oriented languages that have automatic storage management and dynamic look-up of methods, the compiler must obtain such knowledge by performing static analysis of the source code. We present an analysis algorithm which discovers the potential classes of each object in an object-oriented program as well as a safe approximation of their lifetimes. These results are obtained u… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
15
0

Year Published

1995
1995
2010
2010

Publication Types

Select...
4
3
2

Relationship

0
9

Authors

Journals

citations
Cited by 25 publications
(15 citation statements)
references
References 10 publications
0
15
0
Order By: Relevance
“…Many positions on the spectrum of trade-offs between precision and scalability have been explored: flow-insensitive, contextinsensitive analyses, such as (Andersen 1994;Steensgaard 1996); context-sensitive, flow-insensitive analyses, such as (Foster et al 2000;Milanova et al 2005); context-insensitive, flow-sensitive analyses, such as (Choi et al 1993;Goyal 2005); and context-sensitive, flowsensitive analyses, such as (Vitek et al 1992;Emami et al 1994). …”
Section: Related Workmentioning
confidence: 99%
“…Many positions on the spectrum of trade-offs between precision and scalability have been explored: flow-insensitive, contextinsensitive analyses, such as (Andersen 1994;Steensgaard 1996); context-sensitive, flow-insensitive analyses, such as (Foster et al 2000;Milanova et al 2005); context-insensitive, flow-sensitive analyses, such as (Choi et al 1993;Goyal 2005); and context-sensitive, flowsensitive analyses, such as (Vitek et al 1992;Emami et al 1994). …”
Section: Related Workmentioning
confidence: 99%
“…We refer to analysis that does 1 level of inlining as context-sensitive. Similarly, n-CFA (Shivers 1988;Vitek et al 1992) distinguishes contexts by the last n calls -information for all contexts with the same last n calls is merged. For typical small values for n, such approaches give imprecise results for dynamic languages that routinely use double dispatch and implicit nesting of calls, such as in the case of field access in Python; larger values of n make such analyses consume an unacceptable amount of space.…”
Section: Alias Analysismentioning
confidence: 99%
“…The simplification consists of removing information that is not pertinent to the analysis. Our abstract domain for representing object references in the analysis is similar to the notion of class object graphs from [6], thus object references should be modelled as classes. However, we have to take the equivalence relation over classes into consideration and therefore define an abstract object reference to be an equivalence class: ObjRef = Class /≡ C In order to enhance readability we write [ …”
Section: Abstract Domainsmentioning
confidence: 99%