Efficient and Precise Points-to Analysis: Modeling the Heap by Merging Equivalent Automata

Introduction

Mahjong is an open-source tool introduced in our paper titled "Efficient and Precise Points-to Analysis: Modeling the Heap by Merging Equivalent Automata", PLDI'17. Mahjong implements a new heap abstraction by merging type-consistent heap objects. The new heap abstraction is able to significantly improve the efficiency of points-to analysis while achieving almost the same precision for an important class of type-dependent clients, e.g., call graph construction.

We implement Mahjong as a standalone tool in Java. To demonstrate the usefulness of Mahjong on improving the effectiveness of points-to analysis, we have integrated Mahjong with Doop, a state-of-the-art points-to analysis framework for Java. Mahjong was developed by Tian Tan and Yue Li.

License

GPL v3

Downloads

The tar.gz file includes the source code, executable program and a tutorial of Mahjong.

Artifact