{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,6,9]],"date-time":"2026-06-09T08:45:04Z","timestamp":1780994704906,"version":"3.54.1"},"reference-count":30,"publisher":"Association for Computing Machinery (ACM)","issue":"2","license":[{"start":{"date-parts":[[2022,5,27]],"date-time":"2022-05-27T00:00:00Z","timestamp":1653609600000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"funder":[{"name":"Rajiv and Ritu Batra"},{"name":"Facebook under a Probability and Programming Research Award"},{"name":"Amazon under an Amazon Research Award"},{"name":"United States National Science Foundation","award":["1917924 and 2114627"],"award-info":[{"award-number":["1917924 and 2114627"]}]},{"DOI":"10.13039\/100000185","name":"Defense Advanced Research Projects Agency","doi-asserted-by":"crossref","award":["N66001-21-C-4024"],"award-info":[{"award-number":["N66001-21-C-4024"]}],"id":[{"id":"10.13039\/100000185","id-type":"DOI","asserted-by":"crossref"}]},{"name":"ONR","award":["N00014-17-1-2889 and N00014-19-1-2318"],"award-info":[{"award-number":["N00014-17-1-2889 and N00014-19-1-2318"]}]},{"name":"Facebook Graduate Fellowship"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Program. Lang. Syst."],"published-print":{"date-parts":[[2022,6,30]]},"abstract":"<jats:p>\n            Many program-analysis problems can be formulated as graph-reachability problems. Interleaved Dyck language reachability (\n            <jats:sc>InterDyck<\/jats:sc>\n            -reachability) is a fundamental framework to express a wide variety of program-analysis problems over edge-labeled graphs. The\n            <jats:sc>InterDyck<\/jats:sc>\n            language represents an intersection of multiple matched-parenthesis languages (i.e., Dyck languages). In practice, program analyses typically leverage one Dyck language to achieve context-sensitivity, and other Dyck languages to model data dependencies, such as field-sensitivity and pointer references\/dereferences. In the ideal case, an\n            <jats:sc>InterDyck<\/jats:sc>\n            -reachability framework should model multiple Dyck languages\n            <jats:italic>simultaneously<\/jats:italic>\n            .\n          <\/jats:p>\n          <jats:p>\n            Unfortunately, precise\n            <jats:sc>InterDyck<\/jats:sc>\n            -reachability is undecidable. Any practical solution must over-approximate the exact answer. In the literature, a lot of work has been proposed to over-approximate the\n            <jats:sc>InterDyck<\/jats:sc>\n            -reachability formulation. This article offers a new perspective on improving both the precision and the scalability of\n            <jats:sc>InterDyck<\/jats:sc>\n            -reachability: we aim at simplifying the underlying input graph\n            <jats:italic>G<\/jats:italic>\n            . Our key insight is based on the observation that if an edge is not contributing to any\n            <jats:sc>InterDyck<\/jats:sc>\n            -paths, we can safely eliminate it from\n            <jats:italic>G<\/jats:italic>\n            . Our technique is orthogonal to the\n            <jats:sc>InterDyck<\/jats:sc>\n            -reachability formulation and can serve as a pre-processing step with any over-approximating approach for\n            <jats:sc>InterDyck<\/jats:sc>\n            -reachability. We have applied our graph simplification algorithm to pre-processing the graphs from a recent\n            <jats:sc>InterDyck<\/jats:sc>\n            -reachability-based taint analysis for Android. Our evaluation of three popular\n            <jats:sc>InterDyck<\/jats:sc>\n            -reachability algorithms yields promising results. In particular, our graph-simplification method improves both the scalability and precision of all three\n            <jats:sc>InterDyck<\/jats:sc>\n            -reachability algorithms, sometimes dramatically.\n          <\/jats:p>","DOI":"10.1145\/3492428","type":"journal-article","created":{"date-parts":[[2022,2,24]],"date-time":"2022-02-24T16:49:46Z","timestamp":1645721386000},"page":"1-28","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":13,"title":["Fast Graph Simplification for Interleaved-Dyck Reachability"],"prefix":"10.1145","volume":"44","author":[{"ORCID":"https:\/\/orcid.org\/0000-0002-0194-5589","authenticated-orcid":false,"given":"Yuanbo","family":"Li","sequence":"first","affiliation":[{"name":"Georgia Institute of Technology, Atlanta, GA"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Qirun","family":"Zhang","sequence":"additional","affiliation":[{"name":"Georgia Institute of Technology, Atlanta, GA"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Thomas","family":"Reps","sequence":"additional","affiliation":[{"name":"University of Wisconsin-Madison, Madison, WI"}],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"320","published-online":{"date-parts":[[2022,5,27]]},"reference":[{"key":"e_1_3_2_2_2","doi-asserted-by":"publisher","DOI":"10.1145\/3158118"},{"key":"e_1_3_2_3_2","doi-asserted-by":"publisher","DOI":"10.1145\/1328438.1328460"},{"key":"e_1_3_2_4_2","doi-asserted-by":"publisher","DOI":"10.1145\/349299.349311"},{"key":"e_1_3_2_5_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-31057-7_29"},{"key":"e_1_3_2_6_2","doi-asserted-by":"publisher","DOI":"10.1145\/277650.277667"},{"key":"e_1_3_2_7_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-540-74061-2_17"},{"key":"e_1_3_2_8_2","doi-asserted-by":"publisher","DOI":"10.5555\/578595"},{"key":"e_1_3_2_9_2","volume-title":"Introduction to Automata Theory, Languages and Computation","author":"Hopcroft John E.","year":"1979","unstructured":"John E. Hopcroft and Jeffrey D. Ullman. 1979. Introduction to Automata Theory, Languages and Computation. Addison-Wesley."},{"key":"e_1_3_2_10_2","doi-asserted-by":"publisher","DOI":"10.1145\/2771783.2771803"},{"key":"e_1_3_2_11_2","doi-asserted-by":"publisher","DOI":"10.1109\/LICS.2009.45"},{"key":"e_1_3_2_12_2","doi-asserted-by":"publisher","DOI":"10.1145\/996841.996867"},{"key":"e_1_3_2_13_2","doi-asserted-by":"publisher","DOI":"10.1109\/ASE.2015.9"},{"key":"e_1_3_2_14_2","doi-asserted-by":"publisher","DOI":"10.1145\/3385412.3386021"},{"key":"e_1_3_2_15_2","doi-asserted-by":"publisher","DOI":"10.1145\/3449209"},{"key":"e_1_3_2_16_2","doi-asserted-by":"publisher","DOI":"10.1145\/349214.349241"},{"key":"e_1_3_2_17_2","doi-asserted-by":"publisher","DOI":"10.1016\/S0950-5849(98)00093-7"},{"key":"e_1_3_2_18_2","doi-asserted-by":"publisher","DOI":"10.1145\/345099.345137"},{"key":"e_1_3_2_19_2","doi-asserted-by":"publisher","DOI":"10.1145\/199448.199462"},{"key":"e_1_3_2_20_2","doi-asserted-by":"publisher","DOI":"10.1145\/349299.349310"},{"key":"e_1_3_2_21_2","first-page":"189","volume-title":"Proceedings of the Program Flow Analysis: Theory and Applications","author":"Sharir Micha","year":"1981","unstructured":"Micha Sharir and Amir Pnueli. 1981. Two approaches to interprocedural data flow analysis. In Proceedings of the Program Flow Analysis: Theory and Applications, Steven S. Muchnick and Neil D. Jones (Eds.). Prentice-Hall, 189\u2013234."},{"key":"e_1_3_2_22_2","doi-asserted-by":"publisher","DOI":"10.1145\/3290361"},{"key":"e_1_3_2_23_2","doi-asserted-by":"publisher","DOI":"10.1145\/1133981.1134027"},{"key":"e_1_3_2_24_2","doi-asserted-by":"publisher","DOI":"10.1145\/1094811.1094817"},{"key":"e_1_3_2_25_2","doi-asserted-by":"publisher","DOI":"10.1145\/2676726.2676997"},{"key":"e_1_3_2_26_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-03013-0_6"},{"key":"e_1_3_2_27_2","doi-asserted-by":"publisher","DOI":"10.1145\/2001420.2001440"},{"key":"e_1_3_2_28_2","doi-asserted-by":"publisher","DOI":"10.1145\/2491956.2462159"},{"key":"e_1_3_2_29_2","doi-asserted-by":"publisher","DOI":"10.1145\/3009837.3009848"},{"key":"e_1_3_2_30_2","doi-asserted-by":"publisher","DOI":"10.1145\/2660193.2660213"},{"key":"e_1_3_2_31_2","doi-asserted-by":"publisher","DOI":"10.1145\/1328438.1328464"}],"container-title":["ACM Transactions on Programming Languages and Systems"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3492428","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3492428","content-type":"application\/pdf","content-version":"vor","intended-application":"syndication"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3492428","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,17]],"date-time":"2025-06-17T19:31:09Z","timestamp":1750188669000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3492428"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2022,5,27]]},"references-count":30,"journal-issue":{"issue":"2","published-print":{"date-parts":[[2022,6,30]]}},"alternative-id":["10.1145\/3492428"],"URL":"https:\/\/doi.org\/10.1145\/3492428","relation":{},"ISSN":["0164-0925","1558-4593"],"issn-type":[{"value":"0164-0925","type":"print"},{"value":"1558-4593","type":"electronic"}],"subject":[],"published":{"date-parts":[[2022,5,27]]},"assertion":[{"value":"2021-04-01","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2021-10-01","order":1,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2022-05-27","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}