1: \begin{thebibliography}{}
2:
3: \bibitem[\protect\citeauthoryear{Agesen, Detlefs, and Moss}{Agesen
4: et~al\mbox{.}}{1998}]{AgesenDetMos98}
5: {\sc Agesen, O.}, {\sc Detlefs, D.}, {\sc and} {\sc Moss, J.~E.} 1998.
6: \newblock Garbage collection and local variable type-precision and liveness in
7: {J}ava virtual machines.
8: \newblock In {\em PLDI '98: Proceedings of the ACM SIGPLAN 1998 conference on
9: Programming language design and implementation}. ACM Press, New York, NY,
10: USA, 269--279.
11:
12: \bibitem[\protect\citeauthoryear{Aho, Sethi, and Ullman}{Aho
13: et~al\mbox{.}}{1986}]{asu}
14: {\sc Aho, A.~V.}, {\sc Sethi, R.}, {\sc and} {\sc Ullman, J.~D.} 1986.
15: \newblock {\em Compilers -- Principles, Techniques, and Tools}.
16: \newblock Addison-Wesley.
17:
18: \bibitem[\protect\citeauthoryear{Blanchet}{Blanchet}{1999}]{Blanchet:1999:EAO}
19: {\sc Blanchet, B.} 1999.
20: \newblock Escape analysis for object-oriented languages: application to {J}ava.
21: \newblock In {\em OOPSLA '99: Proceedings of the 14th ACM SIGPLAN conference on
22: Object-oriented programming, systems, languages, and applications}. ACM
23: Press, New York, NY, USA, 20--34.
24:
25: \bibitem[\protect\citeauthoryear{Blanchet}{Blanchet}{2003}]{Blanchet:2003:EAJ}
26: {\sc Blanchet, B.} 2003.
27: \newblock Escape analysis for {Java$^{TM}$}: {T}heory and practice.
28: \newblock {\em ACM Transactions on Programming Languages and Systems\/}~{\em
29: 25,\/}~6, 713--775.
30:
31: \bibitem[\protect\citeauthoryear{Boehm}{Boehm}{}]{gcbench}
32: {\sc Boehm, H.}
33: \newblock An artificial garbage collection benchmark.
34: \newblock \url{http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_bench.html}.
35:
36: \bibitem[\protect\citeauthoryear{Cannarozzi, Plezbert, and Cytron}{Cannarozzi
37: et~al\mbox{.}}{2000}]{cann00}
38: {\sc Cannarozzi, D.~J.}, {\sc Plezbert, M.~P.}, {\sc and} {\sc Cytron, R.~K.}
39: 2000.
40: \newblock Contaminated garbage collection.
41: \newblock In {\em PLDI '00: Proceedings of the ACM SIGPLAN 2000 conference on
42: Programming language design and implementation}. ACM Press, New York, NY,
43: USA, 264--273.
44:
45: \bibitem[\protect\citeauthoryear{Carlisle}{Carlisle}{1996}]{jolden}
46: {\sc Carlisle, M.~C.} 1996.
47: \newblock Olden: Parallelizing programs with dynamic data structures on
48: distributed-memory machines.
49: \newblock Ph.D. thesis, Princeton University.
50:
51: \bibitem[\protect\citeauthoryear{Chase, Wegman, and Zadeck}{Chase
52: et~al\mbox{.}}{1990}]{ChaseWegZad90}
53: {\sc Chase, D.~R.}, {\sc Wegman, M.}, {\sc and} {\sc Zadeck, F.~K.} 1990.
54: \newblock Analysis of pointers and structures.
55: \newblock In {\em PLDI '90: Proceedings of the ACM SIGPLAN 1990 conference on
56: Programming language design and implementation}. ACM Press, New York, NY,
57: USA, 296--310.
58:
59: \bibitem[\protect\citeauthoryear{Cheng and Hwu}{Cheng and
60: Hwu}{2000}]{cheng00modular}
61: {\sc Cheng, B.-C.} {\sc and} {\sc Hwu, W.-M.~W.} 2000.
62: \newblock Modular interprocedural pointer analysis using access paths: design,
63: implementation, and evaluation.
64: \newblock In {\em PLDI '00: Proceedings of the ACM SIGPLAN 2000 conference on
65: Programming language design and implementation}. ACM Press, New York, NY,
66: USA, 57--69.
67:
68: \bibitem[\protect\citeauthoryear{Cherem and Rugina}{Cherem and
69: Rugina}{2006}]{cherem06compile}
70: {\sc Cherem, S.} {\sc and} {\sc Rugina, R.} 2006.
71: \newblock Compile-time deallocation of individual objects.
72: \newblock In {\em ISMM '06: Proceedings of the 2006 international symposium on
73: Memory management}. ACM Press, New York, NY, USA, 138--149.
74:
75: \bibitem[\protect\citeauthoryear{Choi, Burke, and Carini}{Choi
76: et~al\mbox{.}}{1993}]{choi93efficient}
77: {\sc Choi, J.-D.}, {\sc Burke, M.}, {\sc and} {\sc Carini, P.} 1993.
78: \newblock Efficient flow-sensitive interprocedural computation of
79: pointer-induced aliases and side effects.
80: \newblock In {\em POPL '93: Proceedings of the 20th ACM SIGPLAN-SIGACT
81: symposium on Principles of programming languages}. ACM Press, New York, NY,
82: USA, 232--245.
83:
84: \bibitem[\protect\citeauthoryear{Choi, Gupta, Serrano, Sreedhar, and
85: Midkiff}{Choi et~al\mbox{.}}{1999}]{choi99escape}
86: {\sc Choi, J.-D.}, {\sc Gupta, M.}, {\sc Serrano, M.}, {\sc Sreedhar, V.~C.},
87: {\sc and} {\sc Midkiff, S.} 1999.
88: \newblock Escape analysis for {J}ava.
89: \newblock In {\em OOPSLA '99: Proceedings of the 14th ACM SIGPLAN conference on
90: Object-oriented programming, systems, languages, and applications}. ACM
91: Press, New York, NY, USA, 1--19.
92:
93: \bibitem[\protect\citeauthoryear{Gadbois, Fiterman, Chase, Shapiro, Nilsen,
94: Haahr, Barnes, and Pirinen}{Gadbois et~al\mbox{.}}{}]{gcfaq}
95: {\sc Gadbois, D.}, {\sc Fiterman, C.}, {\sc Chase, D.}, {\sc Shapiro, M.}, {\sc
96: Nilsen, K.}, {\sc Haahr, P.}, {\sc Barnes, N.}, {\sc and} {\sc Pirinen,
97: P.~P.}
98: \newblock The {GC FAQ}.
99: \newblock \url{http://www.iecc.com/gclist/GC-faq.html}.
100:
101: \bibitem[\protect\citeauthoryear{Guyer, McKinley, and Frampton}{Guyer
102: et~al\mbox{.}}{2006}]{guyer06free}
103: {\sc Guyer, S.~Z.}, {\sc McKinley, K.~S.}, {\sc and} {\sc Frampton, D.} 2006.
104: \newblock Free-me: a static analysis for automatic individual object
105: reclamation.
106: \newblock In {\em PLDI '06: Proceedings of the 2006 ACM SIGPLAN conference on
107: Programming language design and implementation}. ACM Press, New York, NY,
108: USA, 364--375.
109:
110: \bibitem[\protect\citeauthoryear{Hackett and Rugina}{Hackett and
111: Rugina}{2005}]{hackett05region}
112: {\sc Hackett, B.} {\sc and} {\sc Rugina, R.} 2005.
113: \newblock Region-based shape analysis with tracked locations.
114: \newblock In {\em POPL '05: Proceedings of the 32nd ACM SIGPLAN-SIGACT
115: symposium on Principles of programming languages}. ACM Press, New York, NY,
116: USA, 310--323.
117:
118: \bibitem[\protect\citeauthoryear{Hallenberg, Elsman, and Tofte}{Hallenberg
119: et~al\mbox{.}}{2002}]{tofte-region-pldi-02}
120: {\sc Hallenberg, N.}, {\sc Elsman, M.}, {\sc and} {\sc Tofte, M.} 2002.
121: \newblock Combining region inference and garbage collection.
122: \newblock In {\em PLDI '02: Proceedings of the ACM SIGPLAN 2002 Conference on
123: Programming language design and implementation}. ACM Press, New York, NY,
124: USA, 141--152.
125:
126: \bibitem[\protect\citeauthoryear{Hecht}{Hecht}{1977}]{hect}
127: {\sc Hecht, M.~S.} 1977.
128: \newblock {\em Flow Analysis of Computer Programs}.
129: \newblock Elsevier North-Holland Inc.
130:
131: \bibitem[\protect\citeauthoryear{Hind, Burke, Carini, and Choi}{Hind
132: et~al\mbox{.}}{1999}]{hind99interprocedural}
133: {\sc Hind, M.}, {\sc Burke, M.}, {\sc Carini, P.}, {\sc and} {\sc Choi, J.-D.}
134: 1999.
135: \newblock Interprocedural pointer alias analysis.
136: \newblock {\em ACM Transactions on Programming Languages and Systems\/}~{\em
137: 21,\/}~4, 848--894.
138:
139: \bibitem[\protect\citeauthoryear{Hirzel, Diwan, and Henkel}{Hirzel
140: et~al\mbox{.}}{2002}]{Hirzel.liveness.02}
141: {\sc Hirzel, M.}, {\sc Diwan, A.}, {\sc and} {\sc Henkel, J.} 2002.
142: \newblock On the usefulness of type and liveness accuracy for garbage
143: collection and leak detection.
144: \newblock {\em ACM Transactions on Programming Languages and Systems\/}~{\em
145: 24,\/}~6, 593--624.
146:
147: \bibitem[\protect\citeauthoryear{Hirzel, Henkel, Diwan, and Hind}{Hirzel
148: et~al\mbox{.}}{2002}]{hirz02}
149: {\sc Hirzel, M.}, {\sc Henkel, J.}, {\sc Diwan, A.}, {\sc and} {\sc Hind, M.}
150: 2002.
151: \newblock Understanding the connectivity of heap objects.
152: \newblock In {\em ISMM '02: Proceedings of the 3rd international symposium on
153: Memory management}. ACM Press, New York, NY, USA, 36--49.
154:
155: \bibitem[\protect\citeauthoryear{Horwitz, Pfeiffer, and Reps}{Horwitz
156: et~al\mbox{.}}{1989}]{horw89dependence}
157: {\sc Horwitz, S.}, {\sc Pfeiffer, P.}, {\sc and} {\sc Reps, T.} 1989.
158: \newblock Dependence analysis for pointer variables.
159: \newblock In {\em PLDI '89: Proceedings of the ACM SIGPLAN 1989 Conference on
160: Programming language design and implementation}. ACM Press, New York, NY,
161: USA, 28--40.
162:
163: \bibitem[\protect\citeauthoryear{Iyer}{Iyer}{2005}]{hra.AG.Safety}
164: {\sc Iyer, P.~C.} 2005.
165: \newblock {PVS} based proofs of safety properties of access graph operations.
166: \newblock \url{http://www.cse.iitb.ac.in/~uday/hraResources/AGSafety.html}.
167:
168: \bibitem[\protect\citeauthoryear{Jones and Muchnick}{Jones and
169: Muchnick}{1979}]{DBLP:conf/popl/JonesM79}
170: {\sc Jones, N.~D.} {\sc and} {\sc Muchnick, S.~S.} 1979.
171: \newblock Flow analysis and optimization of lisp-like structures.
172: \newblock In {\em POPL '79: Proceedings of the 6th ACM SIGACT-SIGPLAN symposium
173: on Principles of programming languages}. ACM Press, New York, NY, USA,
174: 244--256.
175:
176: \bibitem[\protect\citeauthoryear{Jones and Muchnick}{Jones and
177: Muchnick}{1982}]{jones82flexible}
178: {\sc Jones, N.~D.} {\sc and} {\sc Muchnick, S.~S.} 1982.
179: \newblock A flexible approach to interprocedural data flow analysis and
180: programs with recursive data structures.
181: \newblock In {\em POPL '82: Proceedings of the 9th ACM SIGPLAN-SIGACT symposium
182: on Principles of programming languages}. ACM Press, New York, NY, USA,
183: 66--74.
184:
185: \bibitem[\protect\citeauthoryear{Karkare}{Karkare}{2005}]{hra.prototype}
186: {\sc Karkare, A.} 2005.
187: \newblock {XSB}-{P}rolog based prototype implementation of heap reference
188: analysis.
189: \newblock \url{http://www.cse.iitb.ac.in/~uday/hraResources/hraPrototpye.html}.
190:
191: \bibitem[\protect\citeauthoryear{Karkare, Khedker, and Sanyal}{Karkare
192: et~al\mbox{.}}{2007}]{karkare07liveness}
193: {\sc Karkare, A.}, {\sc Khedker, U.}, {\sc and} {\sc Sanyal, A.} 2007.
194: \newblock Liveness of heap data for functional programs.
195: \newblock In {\em HAV 2007: Heap Analysis and Verification Workshop}. 64--80.
196: \newblock \url{http://research.microsoft.com/~jjb/papers/HAV_proceedings.pdf}.
197:
198: \bibitem[\protect\citeauthoryear{Karkare, Sanyal, and Khedker}{Karkare
199: et~al\mbox{.}}{2007}]{karkare07hra}
200: {\sc Karkare, A.}, {\sc Sanyal, A.}, {\sc and} {\sc Khedker, U.} 2007.
201: \newblock Heap reference analysis for functional programs.
202: \newblock (In preparation).
203:
204: \bibitem[\protect\citeauthoryear{Karkare}{Karkare}{2007}]{bageshri07phd}
205: {\sc Karkare, B.} 2007.
206: \newblock Complexity and efficiency issues in data flow analysis.
207: \newblock Ph.D. thesis, Department of Computer Science and Engineering, Indian
208: Institute of Technology, Bombay.
209: \newblock (Submitted).
210:
211: \bibitem[\protect\citeauthoryear{Khedker}{Khedker}{2002}]{dfa.chap}
212: {\sc Khedker, U.~P.} 2002.
213: \newblock Data flow analysis.
214: \newblock In {\em Compiler Design Handbook: Optimizations and Machine Code
215: Generation}, {Y.~N. Srikant} {and} {P.~Shankar}, Eds. CRC Press, Inc., Boca
216: Raton, FL, USA.
217:
218: \bibitem[\protect\citeauthoryear{Khedker, Dhamdhere, and Mycroft}{Khedker
219: et~al\mbox{.}}{2003}]{kdm.typeinferencing}
220: {\sc Khedker, U.~P.}, {\sc Dhamdhere, D.~M.}, {\sc and} {\sc Mycroft, A.} 2003.
221: \newblock Bidirectional data flow analysis for type inferencing.
222: \newblock {\em Computer Languages, Systems and Structures\/}~{\em 29,\/}~1-2,
223: 15--44.
224:
225: \bibitem[\protect\citeauthoryear{Larus and Hilfinger}{Larus and
226: Hilfinger}{1988}]{LarusH1988}
227: {\sc Larus, J.~R.} {\sc and} {\sc Hilfinger, P.~N.} 1988.
228: \newblock Detecting conflicts between structure accesses.
229: \newblock In {\em PLDI '88: Proceedings of the ACM SIGPLAN 1988 conference on
230: Programming Language design and Implementation}. ACM Press, New York, NY,
231: USA, 24--31.
232:
233: \bibitem[\protect\citeauthoryear{McDowell}{McDowell}{1998}]{mcdo98}
234: {\sc McDowell, C.~E.} 1998.
235: \newblock Reducing garbage in java.
236: \newblock {\em SIGPLAN Notices\/}~{\em 33,\/}~9, 84--86.
237:
238: \bibitem[\protect\citeauthoryear{Reid, McCorquodale, Baker, Hsieh, and
239: Zachary}{Reid et~al\mbox{.}}{1999}]{reid99}
240: {\sc Reid, A.}, {\sc McCorquodale, J.}, {\sc Baker, J.}, {\sc Hsieh, W.}, {\sc
241: and} {\sc Zachary, J.} 1999.
242: \newblock The need for predictable garbage collection.
243: \newblock In {\em Proceedings of the {ACM} {SIGPLAN} Workshop on Compiler
244: Support for System Software ({WCSSS}'99)}.
245:
246: \bibitem[\protect\citeauthoryear{Sagiv, Reps, and Wilhelm}{Sagiv
247: et~al\mbox{.}}{2002}]{shape.chap}
248: {\sc Sagiv, M.}, {\sc Reps, T.}, {\sc and} {\sc Wilhelm, R.} 2002.
249: \newblock Shape analysis and applications.
250: \newblock In {\em Compiler Design Handbook: Optimizations and Machine Code
251: Generation}, {Y.~N. Srikant} {and} {P.~Shankar}, Eds. CRC Press, Inc, Boca
252: Raton, FL, USA.
253:
254: \bibitem[\protect\citeauthoryear{Shaham, Kolodner, and Sagiv}{Shaham
255: et~al\mbox{.}}{2000}]{shah00}
256: {\sc Shaham, R.}, {\sc Kolodner, E.~K.}, {\sc and} {\sc Sagiv, M.} 2000.
257: \newblock On effectiveness of gc in java.
258: \newblock In {\em ISMM '00: Proceedings of the 2nd international symposium on
259: Memory management}. ACM Press, New York, NY, USA, 12--17.
260:
261: \bibitem[\protect\citeauthoryear{Shaham, Kolodner, and Sagiv}{Shaham
262: et~al\mbox{.}}{2001}]{shah01}
263: {\sc Shaham, R.}, {\sc Kolodner, E.~K.}, {\sc and} {\sc Sagiv, M.} 2001.
264: \newblock Heap profiling for space-efficient java.
265: \newblock In {\em PLDI '01: Proceedings of the ACM SIGPLAN 2001 conference on
266: Programming language design and implementation}. ACM Press, New York, NY,
267: USA, 104--113.
268:
269: \bibitem[\protect\citeauthoryear{Shaham, Kolodner, and Sagiv}{Shaham
270: et~al\mbox{.}}{2002}]{shah02}
271: {\sc Shaham, R.}, {\sc Kolodner, E.~K.}, {\sc and} {\sc Sagiv, M.} 2002.
272: \newblock Estimating the impact of heap liveness information on space
273: consumption in {J}ava.
274: \newblock In {\em ISMM '02: Proceedings of the 3rd international symposium on
275: Memory management}. ACM Press, New York, NY, USA, 64--75.
276:
277: \bibitem[\protect\citeauthoryear{Shaham, Yahav, Kolodner, and Sagiv}{Shaham
278: et~al\mbox{.}}{2003}]{ran.shaham-sas03}
279: {\sc Shaham, R.}, {\sc Yahav, E.}, {\sc Kolodner, E.~K.}, {\sc and} {\sc Sagiv,
280: S.} 2003.
281: \newblock Establishing local temporal heap safety properties with applications
282: to compile-time memory management.
283: \newblock In {\em SAS '03: Proceedings of the 10th International Symposium on
284: Static Analysis}. Springer-Verlag, London, UK, 483--503.
285:
286: \bibitem[\protect\citeauthoryear{Tofte and Birkedal}{Tofte and
287: Birkedal}{1998}]{tofte98region}
288: {\sc Tofte, M.} {\sc and} {\sc Birkedal, L.} 1998.
289: \newblock A region inference algorithm.
290: \newblock {\em ACM Transactions on Programming Languages and Systems\/}~{\em
291: 20,\/}~4, 724--767.
292:
293: \bibitem[\protect\citeauthoryear{Vall\'ee-Rai, Hendren, Sundaresan, Lam,
294: Gagnon, and Co}{Vall\'ee-Rai et~al\mbox{.}}{1999}]{vall99soot}
295: {\sc Vall\'ee-Rai, R.}, {\sc Hendren, L.}, {\sc Sundaresan, V.}, {\sc Lam, P.},
296: {\sc Gagnon, E.}, {\sc and} {\sc Co, P.} 1999.
297: \newblock Soot - a java optimization framework.
298: \newblock In {\em Proceedings of CASCON 1999}. 125--135.
299:
300: \bibitem[\protect\citeauthoryear{Wilson and Lam}{Wilson and
301: Lam}{1995}]{wilson95efficient}
302: {\sc Wilson, R.~P.} {\sc and} {\sc Lam, M.~S.} 1995.
303: \newblock Efficient, context-sensitive pointer analysis for {C} programs.
304: \newblock In {\em PLDI '95: Proceedings of the ACM SIGPLAN 1995 conference on
305: Programming language design and implementation}. ACM Press, New York, NY,
306: USA, 1--12.
307:
308: \bibitem[\protect\citeauthoryear{Yong, Horwitz, and Reps}{Yong
309: et~al\mbox{.}}{1999}]{yong99pointer}
310: {\sc Yong, S.~H.}, {\sc Horwitz, S.}, {\sc and} {\sc Reps, T.} 1999.
311: \newblock Pointer analysis for programs with structures and casting.
312: \newblock In {\em PLDI '99: Proceedings of the ACM SIGPLAN 1999 conference on
313: Programming language design and implementation}. ACM Press, New York, NY,
314: USA, 91--103.
315:
316: \end{thebibliography}
317: