Abstract Points-to analysis addresses a fundamental problem in program analysis:determin- ing statically which objects a variable or reference can point to.As a fundamental technique,many real-world clients such as bug detection,security analysis,pro- gram understanding,compiler optimization and program verification,depend on the results of points-to analysis. A long-standing problem in points-to analysis is the balance between precision and efficiency.This thesis aims to improve both ends of the balance respectively. For precision,object-sensitivity is usually considered as the most precise context-sensitivity for points-to analysis for object-oriented languages,such as Java.However,it suffers from the scalability problem when increasing the context length and thus it is hard to further improve its precision.We present BEAN,a new object-sensitivity approach for points-to analysis.By identifying and eliminating the redundant context elements which contribute nothing to the precision,BEAN is able to improve the precision of any k- object-sensitive analysis by still using a k-limiting context abstraction. For efficiency,targeting the type-dependent clients such as call graph con- struction,devirtualization and may-fail casting,we present MAHJONG,a new heap abstraction approach for points-to analysis.By merging equiv- alent automata representing type-consistent objects that are created by the iAbstract Points-to analysis addresses a fundamental problem in program analysis: determining statically which objects a variable or reference can point to. As a fundamental technique, many real-world clients such as bug detection, security analysis, program understanding, compiler optimization and program verification, depend on the results of points-to analysis. A long-standing problem in points-to analysis is the balance between precision and efficiency. This thesis aims to improve both ends of the balance respectively. • For precision, object-sensitivity is usually considered as the most precise context-sensitivity for points-to analysis for object-oriented languages, such as Java. However, it suffers from the scalability problem when increasing the context length and thus it is hard to further improve its precision. We present Bean, a new object-sensitivity approach for points-to analysis. By identifying and eliminating the redundant context elements which contribute nothing to the precision, Bean is able to improve the precision of any kobject-sensitive analysis by still using a k-limiting context abstraction. • For efficiency, targeting the type-dependent clients such as call graph construction, devirtualization and may-fail casting, we present Mahjong, a new heap abstraction approach for points-to analysis. By merging equivalent automata representing type-consistent objects that are created by the i