{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,10,8]],"date-time":"2026-10-08T11:34:03Z","timestamp":1791459243231,"version":"4.3.4"},"reference-count":104,"publisher":"Association for Computing Machinery (ACM)","issue":"3","license":[{"start":{"date-parts":[[2023,4,26]],"date-time":"2023-04-26T00:00:00Z","timestamp":1682467200000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"funder":[{"name":"Hong Kong Research Grant Council and the Innovation and Technology Commission, Ant Group","award":["RGC16206517, ITS\/440\/18FP and PRP\/004\/21FX"],"award-info":[{"award-number":["RGC16206517, ITS\/440\/18FP and PRP\/004\/21FX"]}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Softw. Eng. Methodol."],"published-print":{"date-parts":[[2023,7,31]]},"abstract":"<jats:p>Containers are ubiquitous data structures that support a variety of manipulations on the elements, inducing the indirect value flows in the program. Tracking value flows through containers is stunningly difficult, because it depends on container memory layouts, which are expensive to be discovered.<\/jats:p>\n          <jats:p>\n            This work presents a fast and precise value-flow analysis framework called\n            <jats:sc>Anchor<\/jats:sc>\n            for the programs using containers. We introduce the notion of anchored containers and propose the memory orientation analysis to construct a precise value-flow graph. Specifically, we establish a combined domain to identify anchored containers and apply strong updates to container memory layouts.\n            <jats:sc>Anchor<\/jats:sc>\n            finally conducts a demand-driven reachability analysis in the value-flow graph for a client. Experiments show that it removes 17.1% spurious statements from thin slices and discovers 20 null pointer exceptions with 9.1% as its false-positive ratio, while the smashing-based analysis reports 66.7% false positives.\n            <jats:sc>Anchor<\/jats:sc>\n            scales to millions of lines of code and checks the program with around 5.12 MLoC within 5 hours.\n          <\/jats:p>","DOI":"10.1145\/3565800","type":"journal-article","created":{"date-parts":[[2022,10,4]],"date-time":"2022-10-04T11:05:10Z","timestamp":1664881510000},"page":"1-39","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":18,"title":["<scp>Anchor<\/scp>\n            : Fast and Precise Value-flow Analysis for Containers via Memory Orientation"],"prefix":"10.1145","volume":"32","author":[{"ORCID":"https:\/\/orcid.org\/0000-0003-0617-5322","authenticated-orcid":false,"given":"Chengpeng","family":"Wang","sequence":"first","affiliation":[{"name":"The Hong Kong University of Science and Technology, Hong Kong, China"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0001-6475-0781","authenticated-orcid":false,"given":"Wenyang","family":"Wang","sequence":"additional","affiliation":[{"name":"Ant Group, Shenzhen, Guangdong, China"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0003-0342-9518","authenticated-orcid":false,"given":"Peisen","family":"Yao","sequence":"additional","affiliation":[{"name":"The Hong Kong University of Science and Technology, Hong Kong, China"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-8297-8998","authenticated-orcid":false,"given":"Qingkai","family":"Shi","sequence":"additional","affiliation":[{"name":"Ant Group, Shenzhen, Guangdong, China"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-7664-2718","authenticated-orcid":false,"given":"Jinguo","family":"Zhou","sequence":"additional","affiliation":[{"name":"Ant Group, Shenzhen, Guangdong, China"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0001-8174-7277","authenticated-orcid":false,"given":"Xiao","family":"Xiao","sequence":"additional","affiliation":[{"name":"Ant Group, Shenzhen, Guangdong, China"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0001-6417-1034","authenticated-orcid":false,"given":"Charles","family":"Zhang","sequence":"additional","affiliation":[{"name":"The Hong Kong University of Science and Technology, Hong Kong, China"}],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"320","published-online":{"date-parts":[[2023,4,26]]},"reference":[{"key":"e_1_3_2_2_2","unstructured":"Microsoft. 2022. Containers-C++ Reference. Retrieved September 7 2022 from https:\/\/www.cplusplus.com\/reference\/stl\/."},{"key":"e_1_3_2_3_2","unstructured":"Oracle. 2022. Collections Framework Overview. Retrieved from September 7 2022 from https:\/\/docs.oracle.com\/javase\/8\/docs\/technotes\/guides\/collections\/overview.html."},{"key":"e_1_3_2_4_2","unstructured":"JavaEE. 2022. Java EE 8 Specification APIs. Retrieved September 7 2022 from https:\/\/javaee.github.io\/javaee-spec\/javadocs\/."},{"key":"e_1_3_2_5_2","doi-asserted-by":"publisher","DOI":"10.1145\/1250734.1250748"},{"key":"e_1_3_2_6_2","doi-asserted-by":"publisher","DOI":"10.1145\/77606.77608"},{"key":"e_1_3_2_7_2","doi-asserted-by":"publisher","DOI":"10.1145\/1029894.1029907"},{"key":"e_1_3_2_8_2","volume-title":"Proceedings of the 14th USENIX Security Symposium","author":"Livshits V. Benjamin","year":"2005","unstructured":"V. Benjamin Livshits and Monica S. Lam. 2005. Finding security vulnerabilities in Java applications with static analysis. In Proceedings of the 14th USENIX Security Symposium, Patrick D. McDaniel (Ed.). USENIX Association."},{"key":"e_1_3_2_9_2","doi-asserted-by":"publisher","DOI":"10.1145\/1542476.1542486"},{"key":"e_1_3_2_10_2","doi-asserted-by":"publisher","DOI":"10.1145\/2491956.2462186"},{"key":"e_1_3_2_11_2","doi-asserted-by":"publisher","DOI":"10.1145\/3302424.3303972"},{"key":"e_1_3_2_12_2","doi-asserted-by":"publisher","DOI":"10.1145\/3453483.3454085"},{"key":"e_1_3_2_13_2","unstructured":"Mark Marron Cesar Sanchez and Zhendong Su. 2010. High-level heap abstractions for debugging programs."},{"key":"e_1_3_2_14_2","volume-title":"Towards Automatic Debugging of Computer Programs","author":"Agrawal Hiralal","year":"1991","unstructured":"Hiralal Agrawal. 1991. Towards Automatic Debugging of Computer Programs. Ph.D. Dissertation. Purdue University."},{"key":"e_1_3_2_15_2","doi-asserted-by":"publisher","DOI":"10.1561\/2500000037"},{"key":"e_1_3_2_16_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-319-26529-2_25"},{"key":"e_1_3_2_17_2","doi-asserted-by":"publisher","DOI":"10.1145\/3276510"},{"key":"e_1_3_2_18_2","doi-asserted-by":"publisher","DOI":"10.1145\/3381915"},{"key":"e_1_3_2_19_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-02658-4_52"},{"key":"e_1_3_2_20_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-15769-1_6"},{"key":"e_1_3_2_21_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-319-26529-2_9"},{"key":"e_1_3_2_22_2","doi-asserted-by":"publisher","DOI":"10.1007\/3-540-44898-5_1"},{"key":"e_1_3_2_23_2","doi-asserted-by":"publisher","DOI":"10.1145\/2377656.2377662"},{"key":"e_1_3_2_24_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-18275-4_18"},{"key":"e_1_3_2_25_2","doi-asserted-by":"publisher","DOI":"10.1145\/2771783.2771815"},{"key":"e_1_3_2_26_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-319-10936-7_9"},{"key":"e_1_3_2_27_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-662-46669-8_20"},{"key":"e_1_3_2_28_2","doi-asserted-by":"publisher","DOI":"10.1090\/S0002-9947-1953-0053041-6"},{"key":"e_1_3_2_29_2","doi-asserted-by":"publisher","DOI":"10.1145\/1134285.1134321"},{"key":"e_1_3_2_30_2","doi-asserted-by":"publisher","DOI":"10.1145\/2594291.2594299"},{"key":"e_1_3_2_31_2","doi-asserted-by":"publisher","DOI":"10.1145\/3133923"},{"key":"e_1_3_2_32_2","doi-asserted-by":"publisher","DOI":"10.1145\/3377555.3377885"},{"key":"e_1_3_2_33_2","doi-asserted-by":"publisher","DOI":"10.1145\/3385412.3386026"},{"key":"e_1_3_2_34_2","doi-asserted-by":"publisher","DOI":"10.1145\/3368089.3417059"},{"key":"e_1_3_2_35_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-11957-6_14"},{"key":"e_1_3_2_36_2","doi-asserted-by":"publisher","DOI":"10.1145\/1926385.1926407"},{"key":"e_1_3_2_37_2","doi-asserted-by":"publisher","DOI":"10.1145\/3009837.3009881"},{"key":"e_1_3_2_38_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-02658-4_20"},{"key":"e_1_3_2_39_2","doi-asserted-by":"publisher","DOI":"10.1145\/567752.567778"},{"key":"e_1_3_2_40_2","doi-asserted-by":"publisher","DOI":"10.1007\/3-540-47764-0_16"},{"key":"e_1_3_2_41_2","doi-asserted-by":"publisher","DOI":"10.1002\/spe.2214"},{"key":"e_1_3_2_42_2","doi-asserted-by":"publisher","DOI":"10.1145\/3192366.3192418"},{"key":"e_1_3_2_43_2","doi-asserted-by":"publisher","DOI":"10.1145\/3377811.3380346"},{"key":"e_1_3_2_44_2","unstructured":"OWASP. 2022. Open Web Application Security Project. Retrieved September 7 2022 from http:\/\/www.owasp.org\/."},{"key":"e_1_3_2_45_2","unstructured":"Anchor. 2022. Bug reports of Anchor. Retrieved September 7 2022 from https:\/\/containeranalyzer.github.io\/."},{"key":"e_1_3_2_46_2","doi-asserted-by":"publisher","DOI":"10.1145\/2892208.2892235"},{"key":"e_1_3_2_47_2","doi-asserted-by":"publisher","DOI":"10.1145\/115372.115320"},{"key":"e_1_3_2_48_2","doi-asserted-by":"publisher","DOI":"10.1145\/3314221.3314610"},{"key":"e_1_3_2_49_2","doi-asserted-by":"publisher","DOI":"10.1145\/3453483.3454086"},{"key":"e_1_3_2_50_2","doi-asserted-by":"publisher","DOI":"10.1145\/2892208.2892235"},{"key":"e_1_3_2_51_2","doi-asserted-by":"publisher","DOI":"10.1145\/2931098"},{"key":"e_1_3_2_52_2","doi-asserted-by":"publisher","DOI":"10.1145\/1480881.1480912"},{"issue":"6","key":"e_1_3_2_53_2","doi-asserted-by":"crossref","first-page":"376","DOI":"10.1145\/1133255.1134026","article-title":"Combining abstract interpreters","volume":"41","author":"Gulwani Sumit","year":"2006","unstructured":"Sumit Gulwani and Ashish Tiwari. 2006. Combining abstract interpreters. ACM SIGPLAN Not. 41, 6 (2006), 376\u2013386.","journal-title":"ACM SIGPLAN Not."},{"key":"e_1_3_2_54_2","doi-asserted-by":"publisher","DOI":"10.1145\/512950.512973"},{"key":"e_1_3_2_55_2","article-title":"Efficient path-sensitive data-dependence analysis","author":"Yao Peisen","year":"2021","unstructured":"Peisen Yao, Jinguo Zhou, Xiao Xiao, Qingkai Shi, Rongxin Wu, and Charles Zhang. 2021. Efficient path-sensitive data-dependence analysis. arXiv:2109.07923. Retrieved from https:\/\/arxiv.org\/abs\/2109.07923.","journal-title":"arXiv:2109.07923"},{"key":"e_1_3_2_56_2","first-page":"5","volume-title":"Proceedings of the International Symposium on Logic Programming","author":"Reps Thomas W.","year":"1997","unstructured":"Thomas W. Reps. 1997. Program analysis via graph reachability. In Proceedings of the International Symposium on Logic Programming, Jan Maluszynski (Ed.). MIT Press, 5\u201319."},{"key":"e_1_3_2_57_2","doi-asserted-by":"publisher","DOI":"10.1016\/0304-3975(96)00072-2"},{"key":"e_1_3_2_58_2","doi-asserted-by":"publisher","DOI":"10.1145\/1146238.1146254"},{"key":"e_1_3_2_59_2","doi-asserted-by":"publisher","DOI":"10.1145\/1250734.1250789"},{"key":"e_1_3_2_60_2","doi-asserted-by":"publisher","DOI":"10.1109\/ICSE.2019.00025"},{"key":"e_1_3_2_61_2","doi-asserted-by":"publisher","DOI":"10.1145\/2635868.2635869"},{"key":"e_1_3_2_62_2","doi-asserted-by":"publisher","DOI":"10.1145\/1391984.1391987"},{"key":"e_1_3_2_63_2","doi-asserted-by":"publisher","DOI":"10.1145\/2594291.2594320"},{"key":"e_1_3_2_64_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-540-78800-3_24"},{"key":"e_1_3_2_65_2","doi-asserted-by":"publisher","DOI":"10.1145\/1542476.1542522"},{"key":"e_1_3_2_66_2","doi-asserted-by":"publisher","DOI":"10.1109\/TPDS.2020.3036190"},{"key":"e_1_3_2_67_2","doi-asserted-by":"publisher","DOI":"10.1145\/3527312"},{"key":"e_1_3_2_68_2","doi-asserted-by":"publisher","DOI":"10.1145\/1040305.1040334"},{"key":"e_1_3_2_69_2","doi-asserted-by":"publisher","DOI":"10.4230\/LIPIcs.ECOOP.2016.15"},{"key":"e_1_3_2_70_2","unstructured":"Facebook. 2022. Infer Static Analyzer. Retrieved September 7 2022 from https:\/\/fbinfer.com\/."},{"key":"e_1_3_2_71_2","doi-asserted-by":"publisher","DOI":"10.1145\/3338112"},{"key":"e_1_3_2_72_2","doi-asserted-by":"publisher","DOI":"10.1109\/ASE51524.2021.9678535"},{"key":"e_1_3_2_73_2","doi-asserted-by":"publisher","DOI":"10.1145\/3092703.3092728"},{"key":"e_1_3_2_74_2","doi-asserted-by":"publisher","DOI":"10.1145\/3314221.3314640"},{"key":"e_1_3_2_75_2","unstructured":"Apache Commons. 2022. Commons Collections. Retrieved September 7 2022 from https:\/\/commons.apache.org\/proper\/commons-collections\/."},{"key":"e_1_3_2_76_2","unstructured":"Trove. 2022. High Speed Object and Primitive Collections for Java. Retrieved September 7 2022 from http:\/\/trove.starlight-systems.com\/."},{"key":"e_1_3_2_77_2","unstructured":"Guava. 2022. Google Core Libraries for Java. Retrieved September 7 2022 from https:\/\/github.com\/google\/guava."},{"key":"e_1_3_2_78_2","doi-asserted-by":"publisher","DOI":"10.1145\/1094811.1094817"},{"key":"e_1_3_2_79_2","doi-asserted-by":"publisher","DOI":"10.4230\/LIPIcs.ECOOP.2016.22"},{"key":"e_1_3_2_80_2","doi-asserted-by":"publisher","DOI":"10.1145\/514188.514190"},{"key":"e_1_3_2_81_2","doi-asserted-by":"publisher","DOI":"10.1145\/1667048.1667050"},{"key":"e_1_3_2_82_2","doi-asserted-by":"publisher","DOI":"10.1109\/TCAD.2018.2858462"},{"key":"e_1_3_2_83_2","first-page":"5","volume-title":"Proceedings of the International Symposium on Logic Programming","author":"Reps Thomas W.","year":"1997","unstructured":"Thomas W. Reps. 1997. Program analysis via graph reachability. In Proceedings of the International Symposium on Logic Programming, Jan Maluszynski (Ed.). MIT Press, 5\u201319."},{"key":"e_1_3_2_84_2","doi-asserted-by":"publisher","DOI":"10.1016\/0304-3975(96)00072-2"},{"key":"e_1_3_2_85_2","doi-asserted-by":"publisher","DOI":"10.1145\/2259051.2259052"},{"key":"e_1_3_2_86_2","doi-asserted-by":"publisher","DOI":"10.1145\/215465.215466"},{"key":"e_1_3_2_87_2","first-page":"12","volume-title":"The Compiler Design Handbook: Optimizations and Machine Code Generation, Second Edition","author":"Reps Thomas W.","year":"2007","unstructured":"Thomas W. Reps, Mooly Sagiv, and Reinhard Wilhelm. 2007. Shape analysis and applications. In The Compiler Design Handbook: Optimizations and Machine Code Generation, Second Edition, Y. N. Srikant and Priti Shankar (Eds.). CRC Press, 12."},{"key":"e_1_3_2_88_2","doi-asserted-by":"publisher","DOI":"10.1145\/2049697.2049700"},{"key":"e_1_3_2_89_2","doi-asserted-by":"publisher","DOI":"10.1145\/1706299.1706326"},{"key":"e_1_3_2_90_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-11319-2_27"},{"key":"e_1_3_2_91_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-030-11245-5_13"},{"key":"e_1_3_2_92_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-22110-1_53"},{"key":"e_1_3_2_93_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-39038-8_17"},{"key":"e_1_3_2_94_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-54833-8_28"},{"key":"e_1_3_2_95_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-54013-4_16"},{"key":"e_1_3_2_96_2","doi-asserted-by":"publisher","DOI":"10.1145\/1375581.1375624"},{"key":"e_1_3_2_97_2","doi-asserted-by":"publisher","DOI":"10.1145\/1993498.1993561"},{"key":"e_1_3_2_98_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-54862-8_9"},{"key":"e_1_3_2_99_2","doi-asserted-by":"publisher","DOI":"10.1145\/3192366.3192383"},{"key":"e_1_3_2_100_2","first-page":"118","volume-title":"Proceedings of the 26th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering","author":"Basios Michail","year":"2018","unstructured":"Michail Basios, Lingbo Li, Fan Wu, Leslie Kanthan, and Earl T. Barr. 2018. Darwinian data structure selection. In Proceedings of the 26th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering. 118\u2013128."},{"key":"e_1_3_2_101_2","doi-asserted-by":"publisher","DOI":"10.1145\/3238147.3238218"},{"key":"e_1_3_2_102_2","doi-asserted-by":"publisher","DOI":"10.1145\/3395363.3397378"},{"key":"e_1_3_2_103_2","doi-asserted-by":"publisher","DOI":"10.1145\/3503221.3508424"},{"key":"e_1_3_2_104_2","doi-asserted-by":"publisher","DOI":"10.1145\/3460319.3464826"},{"key":"e_1_3_2_105_2","doi-asserted-by":"publisher","DOI":"10.1145\/3453483.3454068"}],"container-title":["ACM Transactions on Software Engineering and Methodology"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3565800","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3565800","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,17]],"date-time":"2025-06-17T17:48:52Z","timestamp":1750182532000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3565800"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2023,4,26]]},"references-count":104,"journal-issue":{"issue":"3","published-print":{"date-parts":[[2023,7,31]]}},"alternative-id":["10.1145\/3565800"],"URL":"https:\/\/doi.org\/10.1145\/3565800","relation":{},"ISSN":["1049-331X","1557-7392"],"issn-type":[{"value":"1049-331X","type":"print"},{"value":"1557-7392","type":"electronic"}],"subject":[],"published":{"date-parts":[[2023,4,26]]},"assertion":[{"value":"2022-03-08","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2022-09-06","order":1,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2023-04-26","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}