Computer Science – Programming Languages
Scientific paper
2007-10-08
Computer Science
Programming Languages
Scientific paper
Current garbage collectors leave a lot of garbage uncollected because they conservatively approximate liveness by reachability from program variables. In this paper, we describe a sequence of static analyses that takes as input a program written in a first-order, eager functional programming language, and finds at each program point the references to objects that are guaranteed not to be used in the future. Such references are made null by a transformation pass. If this makes the object unreachable, it can be collected by the garbage collector. This causes more garbage to be collected, resulting in fewer collections. Additionally, for those garbage collectors which scavenge live objects, it makes each collection faster. The interesting aspects of our method are both in the identification of the analyses required to solve the problem and the way they are carried out. We identify three different analyses -- liveness, sharing and accessibility. In liveness and sharing analyses, the function definitions are analyzed independently of the calling context. This is achieved by using a variable to represent the unknown context of the function being analyzed and setting up constraints expressing the effect of the function with respect to the variable. The solution of the constraints is a summary of the function that is parameterized with respect to a calling context and is used to analyze function calls. As a result we achieve context sensitivity at call sites without analyzing the function multiple number of times.
Karkare Amey
Khedker Uday
Sanyal Amitabha
No associations
LandOfFree
Heap Reference Analysis for Functional Programs does not yet have a rating. At this time, there are no reviews or comments for this scientific paper.
If you have personal experience with Heap Reference Analysis for Functional Programs, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Heap Reference Analysis for Functional Programs will most certainly appreciate the feedback.
Profile ID: LFWR-SCP-O-544076