Abstract
Many context-sensitive dataflow analyses can be formulated as an extended Dyck-CFL reachability problem, where function calls and returns are modeled as partially matched parentheses. Unfortunately, despite many works on the standard Dyck-CFL reachability problem, solving the extended version is still of quadratic space complexity and nearly cubic time complexity, significantly limiting the scalability of program analyses. This paper, for the first time to the best of our knowledge, presents a cheap approach to transforming the extended Dyck-CFL reachability problem to conventional graph reachability, a much easier and well-studied problem. This transformation allows us to benefit from recent advances in reachability indexing schemes, making it possible to answer any reachability query in a context-sensitive dataflow analysis within almost constant time plus only a few extra spaces. We have implemented our approach in two common context-sensitive dataflow analyses, one determines pointer alias relations and the other tracks information flows. Experimental results demonstrate that, compared to their original analyses, we can achieve orders of magnitude (102× to 105×) speedup at the cost of only a moderate space overhead. Our implementation is publicly available.
- Alfred Aho, Michael Garey, and Jeffrey Ullman. 1972. The transitive reduction of a directed graph. SIAM J. Comput., 1, 2 (1972), 131–137. https://doi.org/10.1137/0201008
Google Scholar
Digital Library
- Rajeev Alur, Michael Benedikt, Kousha Etessami, Patrice Godefroid, Thomas Reps, and Mihalis Yannakakis. 2005. Analysis of recursive state machines. ACM Transactions on Programming Languages and Systems (TOPLAS), 27, 4 (2005), 786–818. https://doi.org/10.1145/1075382.1075387
Google Scholar
Digital Library
- Rajeev Alur and Parthasarathy Madhusudan. 2004. Visibly pushdown languages. In Proceedings of the 36th ACM Symposium on Theory of Computing (STOC ’04). ACM, 202–211. https://doi.org/10.1145/1007352.1007390
Google Scholar
Digital Library
- Steven Arzt and Eric Bodden. 2014. Reviser: Efficiently Updating IDE-/IFDS-Based Data-Flow Analyses in Response to Incremental Program Changes. In Proceedings of the 36th International Conference on Software Engineering (ICSE ’14). ACM, 288–298. https://doi.org/10.1145/2568225.2568243
Google Scholar
Digital Library
- Steven Arzt, Siegfried Rasthofer, Christian Fritz, Eric Bodden, Alexandre Bartel, Jacques Klein, Yves Le Traon, Damien Octeau, and Patrick McDaniel. 2014. Flowdroid: Precise context, flow, field, object-sensitive and lifecycle-aware taint analysis for Android apps. In Proceedings of the 35th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI ’14). ACM, 259–269. https://doi.org/10.1145/2594291.2594299
Google Scholar
Digital Library
- Panagiotis Bouros, Spiros Skiadopoulos, Theodore Dalamagas, Dimitris Sacharidis, and Timos Sellis. 2009. Evaluating reachability queries over path collections. In Proceedings of the 21st International Conference on Scientific and Statistical Database Management (SSDBM ’09). Springer, 398–416. https://doi.org/10.1007/978-3-642-02279-1_29
Google Scholar
Digital Library
- Cheng Cai, Qirun Zhang, Zhiqiang Zuo, Khanh Nguyen, Guoqing Xu, and Zhendong Su. 2018. Calling-to-reference context translation via constraint-guided CFL-reachability. In Proceedings of the 39th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI ’18). ACM, 196–210. https://doi.org/10.1145/3192366.3192378
Google Scholar
Digital Library
- Krishnendu Chatterjee, Bhavya Choudhary, and Andreas Pavlogiannis. 2017. Optimal Dyck reachability for data-dependence and alias analysis. Proceedings of the ACM on Programming Languages, 2, POPL (2017), 30:1–30:30. https://doi.org/10.1145/3158118
Google Scholar
Digital Library
- Swarat Chaudhuri. 2008. Subcubic algorithms for recursive state machines. In Proceedings of the 35th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL ’08). ACM, 159–169. https://doi.org/10.1145/1328438.1328460
Google Scholar
Digital Library
- Li Chen, Amarnath Gupta, and M. Erdem Kurul. 2005. Stack-based algorithms for pattern matching on dags. In Proceedings of the 31st International Conference on Very Large Data Bases. VLDB Endowment, 493–504. https://doi.org/10.14778/2180912.2180919
Google Scholar
Digital Library
- Yangjun Chen and Yibin Chen. 2008. An efficient algorithm for answering graph reachability queries. In Proceedings of the 24nd International Conference on Data Engineering (ICDE ’08). IEEE, 893–902. https://doi.org/10.1109/ICDE.2008.4497498
Google Scholar
Digital Library
- James Cheng, Silu Huang, Huanhuan Wu, and Ada Wai-Chee Fu. 2013. TF-Label: A topological-folding labeling scheme for reachability querying in a large graph. In Proceedings of the 2013 ACM SIGMOD International Conference on Management of Data (SIGMOD ’13). ACM, 193–204. https://doi.org/10.1145/2463676.2465286
Google Scholar
Digital Library
- Sigmund Cherem, Lonnie Princehouse, and Radu Rugina. 2007. Practical memory leak detection using guarded value-flow analysis. In Proceedings of the 28th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI ’07). ACM, 480–491. https://doi.org/10.1145/1250734.1250789
Google Scholar
Digital Library
- Edith Cohen, Eran Halperin, Haim Kaplan, and Uri Zwick. 2003. Reachability and distance queries via 2-hop labels. SIAM J. Comput., 32, 5 (2003), 1338–1355. https://doi.org/10.1137/S0097539702403098
Google Scholar
Digital Library
- Douglas Comer. 1979. Ubiquitous B-tree. ACM Computing Surveys (CSUR), 11, 2 (1979), 121–137. https://doi.org/10.1145/356770.356776
Google Scholar
Digital Library
- Jens Dietrich, Nicholas Hollingum, and Bernhard Scholz. 2015. Giga-scale exhaustive points-to analysis for java in under a minute. In Proceedings of the 2015 ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA ’15). ACM, 535–551. https://doi.org/10.1145/2814270.2814307
Google Scholar
Digital Library
- Wenfei Fan, Jianzhong Li, Xin Wang, and Yinghui Wu. 2012. Query preserving graph compression. In Proceedings of the 2012 ACM SIGMOD International Conference on Management of Data (SIGMOD ’12). ACM, 157–168. https://doi.org/10.1145/2213836.2213855
Google Scholar
Digital Library
- Jeanne Ferrante, Karl J. Ottenstein, and Joe D. Warren. 1987. The program dependence graph and its use in optimization. ACM Transactions on Programming Languages and Systems (TOPLAS), 9, 3 (1987), 319–349. https://doi.org/10.1145/24039.24041
Google Scholar
Digital Library
- Hugh Gauch. 2002. Scientific Method in Practice. Cambridge University Press. https://doi.org/10.1017/CBO9780511815034
Google Scholar
Cross Ref
- Michel Habib, Michel Morvan, and J-X Rampon. 1993. On the calculation of transitive reduction-closure of orders. Discrete Mathematics, 111, 1-3 (1993), 289–303. https://doi.org/10.1016/0012-365X(93)90164-O
Google Scholar
Cross Ref
- Wook-Shin Han, Sangyeon Lee, Kyungyeol Park, Jeong-Hoon Lee, Min-Soo Kim, Jinha Kim, and Hwanjo Yu. 2013. TurboGraph: a fast parallel graph engine handling billion-scale graphs in a single PC. In Proceedings of the 19th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining (KDD ’13). ACM, 77–85. https://doi.org/10.1145/2487575.2487581
Google Scholar
Digital Library
- Mohamed Hassan, Walid Aref, and Ahmed Aly. 2016. Graph indexing for shortest-path finding over dynamic sub-graphs. In Proceedings of the 2016 ACM International Conference on Management of Data (SIGMOD ’16). ACM, 1183–1197. https://doi.org/10.1145/2882903.2882933
Google Scholar
Digital Library
- John L. Henning. 2000. SPEC CPU2000: Measuring CPU performance in the new millennium. Computer, 33, 7 (2000), 28–35. https://doi.org/10.1109/2.869367
Google Scholar
Digital Library
- Ruoming Jin, Hui Hong, Haixun Wang, Ning Ruan, and Yang Xiang. 2010. Computing label-constraint reachability in graph databases. In Proceedings of the 2010 ACM SIGMOD International Conference on Management of Data (SIGMOD ’10). ACM, 123–134. https://doi.org/10.1145/1807167.1807183
Google Scholar
Digital Library
- Ruoming Jin, Ning Ruan, Yang Xiang, and Haixun Wang. 2011. Path-tree: An efficient reachability indexing scheme for large directed graphs. ACM Transactions on Database Systems (TODS), 36, 1 (2011), 7:1–7:44. https://doi.org/10.1145/1929934.1929941
Google Scholar
Digital Library
- Ruoming Jin, Yang Xiang, Ning Ruan, and David Fuhry. 2009. 3-hop: A high-compression indexing scheme for reachability query. In Proceedings of the 2009 ACM SIGMOD International Conference on Management of Data (SIGMOD ’09). ACM, 813–826. https://doi.org/10.1145/1559845.1559930
Google Scholar
Digital Library
- George Kastrinis and Yannis Smaragdakis. 2013. Hybrid Context-Sensitivity for Points-to Analysis. In Proceedings of the 34th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI ’13). ACM, 423–434. https://doi.org/10.1145/2491956.2462191
Google Scholar
Digital Library
- Adam Husted Kjelstrøm and Andreas Pavlogiannis. 2022. The Decidability and Complexity of Interleaved Bidirected Dyck Reachability. Proceedings of the ACM on Programming Languages, 6, POPL (2022), 12:1–12:26. https://doi.org/10.1145/3498673
Google Scholar
Digital Library
- John Kodumal and Alex Aiken. 2004. The set constraint/CFL reachability connection in practice. In Proceedings of the 25th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI ’04). ACM, 207–218. https://doi.org/10.1145/996841.996867
Google Scholar
Digital Library
- Johannes Lerch, Ben Hermann, Eric Bodden, and Mira Mezini. 2014. FlowTwist: Efficient context-sensitive inside-out taint analysis for large codebases. In Proceedings of the 22nd ACM SIGSOFT International Symposium on the Foundations of Software Engineering (FSE ’14). ACM, 98–108. https://doi.org/10.1145/2635868.2635878
Google Scholar
Digital Library
- Lian Li, Cristina Cifuentes, and Nathan Keynes. 2011. Boosting the performance of flow-sensitive points-to analysis using value flow. In Proceedings of the 13th European Software Engineering Conference Held Jointly with the 19th ACM SIGSOFT International Symposium on the Foundations of Software Engineering (ESEC/FSE ’11). ACM, 343–353. https://doi.org/10.1145/2025113.2025160
Google Scholar
Digital Library
- Lian Li, Cristina Cifuentes, and Nathan Keynes. 2013. Precise and scalable context-sensitive pointer analysis via value flow graph. In Proceedings of the 2013 International Symposium on Memory Management (ISMM ’13). ACM, 85–96. https://doi.org/10.1145/2491894.2466483
Google Scholar
Digital Library
- Yuanbo Li, Qirun Zhang, and Thomas Reps. 2020. Fast graph simplification for interleaved Dyck-reachability. In Proceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI ’20). ACM, 780–793. https://doi.org/10.1145/3385412.3386021
Google Scholar
Digital Library
- Yuanbo Li, Qirun Zhang, and Thomas Reps. 2021. On the complexity of bidirected interleaved Dyck-reachability. Proceedings of the ACM on Programming Languages, 5, POPL (2021), 59:1–59:28. https://doi.org/10.1145/3434340
Google Scholar
Digital Library
- David Melski and Thomas Reps. 2000. Interconvertibility of a class of set constraints and context-free-language reachability. Theoretical Computer Science, 248, 1-2 (2000), 29–98. https://doi.org/10.1016/S0304-3975(00)00049-9
Google Scholar
Digital Library
- Ana Milanova. 2020. FlowCFL: generalized type-based reachability analysis: graph reduction and equivalence of CFL-based and type-based reachability. Proceedings of the ACM on Programming Languages, 4, OOPSLA (2020), 178:1–178:29. https://doi.org/10.1145/3428246
Google Scholar
Digital Library
- Neo4j. 2022. Graph data platform. https://neo4j.com/
Google Scholar
- You Peng, Ying Zhang, Xuemin Lin, Lu Qin, and Wenjie Zhang. 2020. Answering billion-scale label-constrained reachability queries within microsecond. Proceedings of the VLDB Endowment, 13, 6 (2020), 812–825. https://doi.org/10.14778/3380750.3380753
Google Scholar
Digital Library
- Polyvios Pratikakis, Jeffrey S. Foster, and Michael Hicks. 2006. Existential label flow inference via CFL reachability. In Proceedings of the 13th International Static Analysis Symposium (SAS ’06). Springer, 88–106. https://doi.org/10.1007/11823230_7
Google Scholar
Digital Library
- Jakob Rehof and Manuel Fähndrich. 2001. Type-based flow analysis: From polymorphic subtyping to CFL-reachability. In Proceedings of the 28th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL ’01). ACM, 54–66. https://doi.org/10.1145/360204.360208
Google Scholar
Digital Library
- Thomas Reps. 1995. Shape analysis as a generalized path problem. In Proceedings of the 1995 ACM SIGPLAN Symposium on Partial Evaluation and Semantics-based Program Manipulation (PEPM ’95). ACM, 1–11. https://doi.org/10.1145/215465.215466
Google Scholar
Digital Library
- Thomas Reps. 1998. Program analysis via graph reachability. Information and Software Technology, 40, 11-12 (1998), 701–726. https://doi.org/10.1016/S0950-5849(98)00093-7
Google Scholar
Cross Ref
- Thomas Reps. 2000. Undecidability of context-sensitive data-dependence analysis. ACM Transactions on Programming Languages and Systems (TOPLAS), 22, 1 (2000), 162–186. https://doi.org/10.1145/345099.345137
Google Scholar
Digital Library
- Thomas Reps, Susan Horwitz, and Mooly Sagiv. 1995. Precise interprocedural dataflow analysis via graph reachability. In Proceedings of the 22nd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL ’95). ACM, 49–61. https://doi.org/10.1145/199448.199462
Google Scholar
Digital Library
- Thomas Reps, Susan Horwitz, Mooly Sagiv, and Genevieve Rosay. 1994. Speeding up slicing. In Proceedings of the 2nd ACM SIGSOFT International Symposium on the Foundations of Software Engineering (FSE ’94). ACM, 11–20. https://doi.org/10.1145/193173.195287
Google Scholar
Digital Library
- Michael Rice and Vassilis Tsotras. 2010. Graph indexing of road networks for shortest path queries with label restrictions. Proceedings of the VLDB Endowment, 4, 2 (2010), 69–80. https://doi.org/10.14778/1921071.1921074
Google Scholar
Digital Library
- Liam Roditty and Uri Zwick. 2008. Improved dynamic reachability algorithms for directed graphs. SIAM J. Comput., 37, 5 (2008), 1455–1471. https://doi.org/10.1137/060650271
Google Scholar
Digital Library
- Philipp Dominik Schubert, Ben Hermann, and Eric Bodden. 2019. Phasar: An inter-procedural static analysis framework for c/c++. In International Conference on Tools and Algorithms for the Construction and Analysis of Systems. Springer, 393–410. https://doi.org/10.1007/978-3-030-17465-1_22
Google Scholar
Cross Ref
- Stephan Seufert, Avishek Anand, Srikanta Bedathur, and Gerhard Weikum. 2013. Ferrari: Flexible and efficient reachability range assignment for graph indexing. In Proceedings of the 29nd International Conference on Data Engineering (ICDE ’13). IEEE, 1009–1020. https://doi.org/10.1109/ICDE.2013.6544893
Google Scholar
Digital Library
- Lei Shang, Xinwei Xie, and Jingling Xue. 2012. On-demand dynamic summary-based points-to analysis. In Proceedings of the 10th International Symposium on Code Generation and Optimization (CGO ’12). ACM, 264–274. https://doi.org/10.1145/2259016.2259050
Google Scholar
Digital Library
- Qingkai Shi, Xiao Xiao, Rongxin Wu, Jinguo Zhou, Gang Fan, and Charles Zhang. 2018. Pinpoint: Fast and precise sparse value flow analysis for million lines of code. In Proceedings of the 39th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI ’18). ACM, 693–706. https://doi.org/10.1145/3192366.3192418
Google Scholar
Digital Library
- Klaus Simon. 1988. An improved algorithm for transitive closure on acyclic digraphs. Theoretical Computer Science, 58, 1-3 (1988), 325–346. https://doi.org/10.1007/3-540-16761-7_87
Google Scholar
Cross Ref
- Yannis Smaragdakis, George Kastrinis, and George Balatsouras. 2014. Introspective Analysis: Context-Sensitivity, across the Board. In Proceedings of the 35th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI ’14). ACM, 485–495. https://doi.org/10.1145/2594291.2594320
Google Scholar
Digital Library
- Johannes Späth, Karim Ali, and Eric Bodden. 2019. Context-, Flow-, and Field-Sensitive Data-Flow Analysis Using Synchronized Pushdown Systems. Proceedings of the ACM on Programming Languages, 3, POPL (2019), 48:1–48:29. https://doi.org/10.1145/3290361
Google Scholar
Digital Library
- Manu Sridharan, Denis Gopan, Lexin Shan, and Rastislav Bodík. 2005. Demand-driven points-to analysis for Java. In Proceedings of the 20th ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA ’05). ACM, 59–76. https://doi.org/10.1145/1094811.1094817
Google Scholar
Digital Library
- Yulei Sui and Jingling Xue. 2016. SVF: Interprocedural static value-flow analysis in LLVM. In Proceedings of the 25th International Conference on Compiler Construction (CC ’16). ACM, 265–266. https://doi.org/10.1145/2892208.2892235
Google Scholar
Digital Library
- Yulei Sui and Jingling Xue. 2020. Value-flow-based demand-driven pointer analysis for C and C++. IEEE Transactions on Software Engineering, 46, 8 (2020), 812–835. https://doi.org/10.1109/TSE.2018.2869336
Google Scholar
Cross Ref
- Yulei Sui, Ding Ye, and Jingling Xue. 2014. Detecting memory leaks statically with full-sparse value-flow analysis. IEEE Transactions on Software Engineering, 40, 2 (2014), 107–122. https://doi.org/10.1109/TSE.2014.2302311
Google Scholar
Digital Library
- Hao Tang, Xiaoyin Wang, Lingming Zhang, Bing Xie, Lu Zhang, and Hong Mei. 2015. Summary-based context-sensitive data-dependence analysis in presence of callbacks. In Proceedings of the 42nd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL ’15). ACM, 83–95. https://doi.org/10.1145/2676726.2676997
Google Scholar
Digital Library
- Robert Tarjan. 1972. Depth-first search and linear graph algorithms. SIAM journal on computing, 1, 2 (1972), 146–160. https://doi.org/10.1137/0201010
Google Scholar
Digital Library
- Raoul-Gabriel Urma and Alan Mycroft. 2015. Source-Code Queries with Graph Databases-with Application to Programming Language Usage and Evolution. Science of Computer Programming, 97, P1 (2015), 127–134. https://doi.org/10.1016/j.scico.2013.11.010
Google Scholar
Digital Library
- Jacobo Valdes, Robert Tarjan, and Eugene Lawler. 1982. The recognition of series parallel digraphs. SIAM J. Comput., 11, 2 (1982), 298–313. https://doi.org/10.1137/0211023
Google Scholar
Digital Library
- Lucien DJ Valstar, George HL Fletcher, and Yuichi Yoshida. 2017. Landmark indexing for evaluation of label-constrained reachability queries. In Proceedings of the 2017 ACM International Conference on Management of Data (SIGMOD ’11). ACM, 345–358. https://doi.org/10.1145/3035918.3035955
Google Scholar
Digital Library
- Haixun Wang, Hao He, Jun Yang, Philip S. Yu, and Jeffrey Xu Yu. 2006. Dual labeling: Answering graph reachability queries in constant time. In Proceedings of the 22nd International Conference on Data Engineering (ICDE ’06). IEEE, 75–75. https://doi.org/10.1109/ICDE.2006.53
Google Scholar
Digital Library
- Kai Wang, Aftab Hussain, Zhiqiang Zuo, Guoqing Xu, and Ardalan Amiri Sani. 2017. Graspan: A single-machine disk-based graph system for interprocedural static analyses of large-scale systems code. In Proceedings of the 22nd International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS ’17). ACM, 389–404. https://doi.org/10.1145/3037697.3037744
Google Scholar
Digital Library
- Hao Wei, Jeffrey Xu Yu, Can Lu, and Ruoming Jin. 2014. Reachability querying: An independent permutation labeling approach. Proceedings of the VLDB Endowment, 7, 12 (2014), 1191–1202. https://doi.org/10.14778/2732977.2732992
Google Scholar
Digital Library
- Cathrin Weiss, Panagiotis Karras, and Abraham Bernstein. 2008. Hexastore: Sextuple Indexing for Semantic Web Data Management. Proceedings of the VLDB Endowment, 1, 1 (2008), 1008–1019. https://doi.org/10.14778/1453856.1453965
Google Scholar
Digital Library
- Cathrin Weiss, Cindy Rubio-González, and Ben Liblit. 2015. Database-backed program analysis for scalable error propagation. In Proceedings of the 37th International Conference on Software Engineering (ICSE ’15). IEEE, 586–597. https://doi.org/10.1109/ICSE.2015.75
Google Scholar
Cross Ref
- Virginia Vassilevska Williams. 2012. Multiplying matrices faster than Coppersmith-Winograd. In Proceedings of the 44th ACM Symposium on Theory of Computing (STOC ’12). ACM, 887–898. https://doi.org/10.1145/2213977.2214056
Google Scholar
Digital Library
- Guoqing Xu, Atanas Rountev, and Manu Sridharan. 2009. Scaling CFL-reachability-based points-to analysis using context-sensitive must-not-alias analysis. In Proceedings of the 23rd European Conference on Object-Oriented Programming (ECOOP ’09). Springer, 98–122. https://doi.org/10.1007/978-3-642-03013-0_6
Google Scholar
Digital Library
- Fabian Yamaguchi, Nico Golde, Daniel Arp, and Konrad Rieck. 2014. Modeling and discovering vulnerabilities with code property graphs. In Proceedings of the 35th IEEE Symposium on Security and Privacy (S&P ’14). IEEE, 590–604. https://doi.org/10.1109/SP.2014.44
Google Scholar
Digital Library
- Dacong Yan, Guoqing Xu, and Atanas Rountev. 2011. Demand-driven context-sensitive alias analysis for Java. In Proceedings of the 20th ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA ’11). ACM, 155–165. https://doi.org/10.1145/2001420.2001440
Google Scholar
Digital Library
- Mihalis Yannakakis. 1990. Graph-theoretic methods in database theory. In Proceedings of the 9th ACM SIGACT-SIGMOD-SIGART Symposium on Principles of Database Systems (PODS ’90). ACM, 230–242. https://doi.org/10.1145/298514.298576
Google Scholar
Digital Library
- Hilmi Yildirim, Vineet Chaoji, and Mohammed J. Zaki. 2010. Grail: Scalable reachability index for large graphs. Proceedings of the VLDB Endowment, 3, 1-2 (2010), 276–284. https://doi.org/10.14778/1920841.1920879
Google Scholar
Digital Library
- Daniel H. Younger. 1967. Recognition and parsing of context-free languages in time n3. Information and Control, 10, 2 (1967), 189–208. https://doi.org/10.1016/S0019-9958(67)80007-X
Google Scholar
Cross Ref
- Hao Yuan and Patrick Eugster. 2009. An efficient algorithm for solving the dyck-cfl reachability problem on trees. In Proceedings of the 18th European Symposium on Programming (ESOP ’09). Springer, 175–189. https://doi.org/10.1007/978-3-642-00590-9_13
Google Scholar
Digital Library
- Qirun Zhang, Michael R. Lyu, Hao Yuan, and Zhendong Su. 2013. Fast algorithms for Dyck-CFL-reachability with applications to alias analysis. In Proceedings of the 34th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI ’13). ACM, 435–446. https://doi.org/10.1145/2499370.2462159
Google Scholar
Digital Library
- Qirun Zhang and Zhendong Su. 2017. Context-sensitive data-dependence analysis via linear conjunctive language reachability. In Proceedings of the 44th ACM SIGPLAN Symposium on Principles of Programming Languages (POPL ’17). ACM, 344–358. https://doi.org/10.1145/3009837.3009848
Google Scholar
Digital Library
- Qirun Zhang, Xiao Xiao, Charles Zhang, Hao Yuan, and Zhendong Su. 2014. Efficient subcubic alias analysis for C. In Proceedings of the 2014 ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA ’14). ACM, 829–845. https://doi.org/10.1145/2660193.2660213
Google Scholar
Digital Library
- Xin Zheng and Radu Rugina. 2008. Demand-driven alias analysis for C. In Proceedings of the 35th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL ’08). ACM, 197–208. https://doi.org/10.1145/1328438.1328464
Google Scholar
Digital Library
- Junfeng Zhou, Shijie Zhou, Jeffrey Xu Yu, Hao Wei, Ziyang Chen, and Xian Tang. 2017. DAG reduction: Fast answering reachability queries. In Proceedings of the 2017 ACM International Conference on Management of Data (SIGMOD ’17). ACM, 375–390. https://doi.org/10.1145/3035918.3035927
Google Scholar
Digital Library
- Li Zhou, Ren Chen, Yinglong Xia, and Radu Teodorescu. 2018. C-Graph: A highly efficient concurrent graph reachability query framework. In Proceedings of the 47th International Conference on Parallel Processing (ICPP ’18). ACM, 79:1–79:10. https://doi.org/10.1145/3225058.3225136
Google Scholar
Digital Library
- Andy Diwen Zhu, Wenqing Lin, Sibo Wang, and Xiaokui Xiao. 2014. Reachability queries on large dynamic graphs: A total order approach. In Proceedings of the 2014 ACM SIGMOD International Conference on Management of Data (SIGMOD ’14). ACM, 1323–1334. https://doi.org/10.1145/2588555.2612181
Google Scholar
Digital Library
- Lei Zou, Kun Xu, Jeffrey Xu Yu, Lei Chen, Yanghua Xiao, and Dongyan Zhao. 2014. Efficient processing of label-constraint reachability queries in large graphs. Information Systems, 40, MAR (2014), 47–66. https://doi.org/10.1016/j.is.2013.10.003
Google Scholar
Digital Library
Index Terms
Indexing the extended Dyck-CFL reachability for context-sensitive program analysis
Recommendations
Demand-driven context-sensitive alias analysis for Java
ISSTA '11: Proceedings of the 2011 International Symposium on Software Testing and AnalysisSoftware tools for program understanding, transformation, verification, and testing often require an efficient yet highly-precise alias analysis. Typically this is done by computing points-to information, from which alias queries can be answered. This ...
Scaling CFL-Reachability-Based Points-To Analysis Using Context-Sensitive Must-Not-Alias Analysis
Genoa: Proceedings of the 23rd European Conference on ECOOP 2009 --- Object-Oriented ProgrammingPointer analyses derived from a Context-Free-Language (CFL) reachability formulation achieve very high precision, but they do not scale well to compute the points-to solution for an entire large program. Our goal is to increase significantly the ...
Evaluating the benefits of context-sensitive points-to analysis using a BDD-based implementation
We present Paddle, a framework of BDD-based context-sensitive points-to and call graph analyses for Java, as well as client analyses that use their results. Paddle supports several variations of context-sensitive analyses, including call site strings ...






Comments