List of Tables 2.1 Five kinds of core statements in points-to analysis.··.,····· 8 3.1 Precision and performance results for all the five analyses.The two precision metrics shown are the number of variable pairs that may be aliases generated by may-alias ("may-alias pairs")and the number of casts that cannot be statically proved to be safe by may-fail-cast ("may-fail casts").In both cases,smaller is better.One performance metric used is the analysis time for a program............41 3.2 Pre-analysis times of BEAN (secs).For a program,its pre-analysis time comes from three components:(1)a context-insensitive points- to analysis ("CI"),(2)OAG construction per Figure 3.6 (OAG), and (3)object-sensitive context computation per Figure 3.8("CTX- 43 4.1 Some equivalence classes in checkstyle....·.·....···· 77 4.2 Efficiency and precision metrics for all programs and analyses with and without MAHJONG.In all cases (except speedup),lower is bet- ter.Symbol oo is used in speedup when a baseline analysis is not scalable but MAHJONG is scalable................... 81 xiList of Tables 2.1 Five kinds of core statements in points-to analysis. . . . . . . . . . 8 3.1 Precision and performance results for all the five analyses. The two precision metrics shown are the number of variable pairs that may be aliases generated by may-alias (“may-alias pairs”) and the number of casts that cannot be statically proved to be safe by may-fail-cast (“may-fail casts”). In both cases, smaller is better. One performance metric used is the analysis time for a program. . . . . . . . . . . . 41 3.2 Pre-analysis times of Bean (secs). For a program, its pre-analysis time comes from three components: (1) a context-insensitive pointsto analysis (“CI”), (2) OAG construction per Figure 3.6 (OAG), and (3) object-sensitive context computation per Figure 3.8 (“CTXCOMP”). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 4.1 Some equivalence classes in checkstyle. . . . . . . . . . . . . . . . 77 4.2 Efficiency and precision metrics for all programs and analyses with and without Mahjong. In all cases (except speedup), lower is better. Symbol ∞ is used in speedup when a baseline analysis is not scalable but Mahjong is scalable. . . . . . . . . . . . . . . . . . . 81 xi