{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,7,16]],"date-time":"2026-07-16T11:03:22Z","timestamp":1784199802960,"version":"3.55.0"},"reference-count":71,"publisher":"Association for Computing Machinery (ACM)","issue":"PLDI","funder":[{"DOI":"10.13039\/501100001659","name":"Deutsche Forschungsgemeinschaft","doi-asserted-by":"publisher","award":["378803395\/2428 ConVeY"],"award-info":[{"award-number":["378803395\/2428 ConVeY"]}],"id":[{"id":"10.13039\/501100001659","id-type":"DOI","asserted-by":"publisher"}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["Proc. ACM Program. Lang."],"published-print":{"date-parts":[[2025,6,10]]},"abstract":"<jats:p>\n                    Static analysis of real-world programs combines flow- and context-sensitive analyses of local program states with computation of flow- and context-insensitive invariants at\n                    <jats:italic toggle=\"yes\">globals<\/jats:italic>\n                    , that, e.g., abstract data shared by multiple threads. The values of locals and globals may mutually depend on each other, with the analysis of local program states both making contributions to globals and querying their values. Usually, all contributions to globals are accumulated during fixpoint iteration, with\n                    <jats:italic toggle=\"yes\">widening<\/jats:italic>\n                    applied to enforce termination. Such flow-insensitive information often becomes unnecessarily imprecise and can include superfluous contributions \u2014\n                    <jats:italic toggle=\"yes\">trash<\/jats:italic>\n                    \u2014 which, in turn, may be\n                    <jats:italic toggle=\"yes\">toxic<\/jats:italic>\n                    to the precision of the overall analysis. To recover precision of globals, we propose techniques complementing each other:\n                    <jats:italic toggle=\"yes\">Narrowing on globals<\/jats:italic>\n                    differentiates contributions by origin; reluctant widening limits the amount of widening applied at globals; and finally,\n                    <jats:italic toggle=\"yes\">abstract garbage collection<\/jats:italic>\n                    undoes contributions to globals and propagates their withdrawal. The experimental evaluation shows that these techniques increase the precision of mixed flow-sensitive analyses at a reasonable cost.\n                  <\/jats:p>","DOI":"10.1145\/3729297","type":"journal-article","created":{"date-parts":[[2025,6,13]],"date-time":"2025-06-13T16:02:27Z","timestamp":1749830547000},"page":"1167-1193","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":3,"title":["Taking Out the Toxic Trash: Recovering Precision in Mixed Flow-Sensitive Static Analyses"],"prefix":"10.1145","volume":"9","author":[{"ORCID":"https:\/\/orcid.org\/0009-0009-7900-8577","authenticated-orcid":false,"given":"Fabian","family":"Stemmler","sequence":"first","affiliation":[{"name":"TU Munich, Munich, Germany"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-9828-0308","authenticated-orcid":false,"given":"Michael","family":"Schwarz","sequence":"additional","affiliation":[{"name":"TU Munich, Munich, Germany"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-1729-3925","authenticated-orcid":false,"given":"Julian","family":"Erhard","sequence":"additional","affiliation":[{"name":"TU Munich, Munich, Germany"},{"name":"LMU Munich, Munich, Germany"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0009-0009-9644-7475","authenticated-orcid":false,"given":"Sarah","family":"Tilscher","sequence":"additional","affiliation":[{"name":"TU Munich, Munich, Germany"},{"name":"LMU Munich, Munich, Germany"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-2135-1593","authenticated-orcid":false,"given":"Helmut","family":"Seidl","sequence":"additional","affiliation":[{"name":"TU Munich, Munich, Germany"}],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"320","published-online":{"date-parts":[[2025,6,13]]},"reference":[{"key":"e_1_3_2_2_2","doi-asserted-by":"publisher","DOI":"10.14722\/ndss.2016.23384"},{"key":"e_1_3_2_3_2","doi-asserted-by":"publisher","DOI":"10.1016\/j.scico.2015.12.005"},{"key":"e_1_3_2_4_2","unstructured":"Lars Ole Andersen. 1994. Program Analysis and Specialization for the C Programming Language. Ph.D. Dissertation."},{"key":"e_1_3_2_5_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-35182-2_12"},{"key":"e_1_3_2_6_2","doi-asserted-by":"publisher","DOI":"10.1145\/2491956.2462190"},{"key":"e_1_3_2_7_2","doi-asserted-by":"publisher","DOI":"10.1145\/2594291.2594299"},{"key":"e_1_3_2_8_2","doi-asserted-by":"publisher","DOI":"10.1145\/3470569"},{"key":"e_1_3_2_9_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-031-57256-2_15"},{"key":"e_1_3_2_10_2","doi-asserted-by":"publisher","DOI":"10.1007\/S10009-017-0469-Y"},{"key":"e_1_3_2_11_2","doi-asserted-by":"publisher","DOI":"10.1145\/781131.781153"},{"key":"e_1_3_2_12_2","doi-asserted-by":"publisher","DOI":"10.1145\/3622833"},{"key":"e_1_3_2_13_2","doi-asserted-by":"publisher","DOI":"10.1016\/J.CL.2010.09.001"},{"key":"e_1_3_2_14_2","doi-asserted-by":"publisher","DOI":"10.1145\/512950.512973"},{"key":"e_1_3_2_15_2","doi-asserted-by":"publisher","DOI":"10.1093\/LOGCOM\/2.4.511"},{"key":"e_1_3_2_16_2","doi-asserted-by":"publisher","DOI":"10.1007\/3-540-55844-6_142"},{"key":"e_1_3_2_17_2","doi-asserted-by":"publisher","DOI":"10.1145\/3110256"},{"key":"e_1_3_2_18_2","doi-asserted-by":"publisher","unstructured":"Julian Erhard Simmo Saan Sarah Tilscher Michael Schwarz Karoliine Holter Vesal Vojdani and Helmut Seidl. 2024. Interactive abstract interpretation: reanalyzing multithreaded C programs for cheap. International Journal on Software Tools for Technology Transfer (2024) 1\u201321. https:\/\/doi.org\/10.1007\/s10009-024-00768-9 10.1007\/s10009-024-00768-9","DOI":"10.1007\/s10009-024-00768-9"},{"key":"e_1_3_2_19_2","doi-asserted-by":"publisher","DOI":"10.1145\/3652588.3663321"},{"key":"e_1_3_2_20_2","doi-asserted-by":"publisher","DOI":"10.1016\/S0167-6423(99)00009-X"},{"key":"e_1_3_2_21_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-030-44914-8_8"},{"key":"e_1_3_2_22_2","doi-asserted-by":"publisher","unstructured":"Dionna Amalie Glaze Nicholas Labich Matthew Might and David Van Horn. 2013. Optimizing abstract abstract machines. In ACM SIGPLAN International Conference on Functional Programming ICFP\u201913 Boston MA USA - September 25 - 27 2013 Greg Morrisett and Tarmo Uustalu (Eds.). ACM 443\u2013454. https:\/\/doi.org\/10.1145\/2500365.2500604 10.1145\/2500365.2500604","DOI":"10.1145\/2500365.2500604"},{"key":"e_1_3_2_23_2","doi-asserted-by":"publisher","DOI":"10.1017\/S0956796814000100"},{"key":"e_1_3_2_24_2","doi-asserted-by":"publisher","DOI":"10.1145\/1250734.1250765"},{"key":"e_1_3_2_25_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-33125-1_15"},{"key":"e_1_3_2_26_2","doi-asserted-by":"publisher","unstructured":"Behnaz Hassanshahi Raghavendra Kagalavadi Ramesh Padmanabhan Krishnan Bernhard Scholz and Yi Lu. 2017. An efficient tunable selective points-to analysis for large codebases. In Proceedings Of the 6th ACM SIGPLAN International Workshop on State of the Art in Program Analysis. 13\u201318. https:\/\/doi.org\/10.1145\/3088515.3088519 10.1145\/3088515.3088519","DOI":"10.1145\/3088515.3088519"},{"key":"e_1_3_2_27_2","doi-asserted-by":"publisher","DOI":"10.26190\/UNSWORKS\/23987"},{"key":"e_1_3_2_28_2","doi-asserted-by":"publisher","DOI":"10.1145\/3597926.3598041"},{"key":"e_1_3_2_29_2","doi-asserted-by":"publisher","DOI":"10.4230\/LIPICS.ECOOP.2022.30"},{"key":"e_1_3_2_30_2","doi-asserted-by":"publisher","DOI":"10.1145\/3368089.3409765"},{"key":"e_1_3_2_31_2","doi-asserted-by":"publisher","DOI":"10.1109\/ICSE.2019.00027"},{"key":"e_1_3_2_32_2","doi-asserted-by":"publisher","DOI":"10.1109\/ICSE48619.2023.00069"},{"key":"e_1_3_2_33_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-031-57246-3_13"},{"key":"e_1_3_2_34_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-031-57267-8_14"},{"key":"e_1_3_2_35_2","doi-asserted-by":"publisher","DOI":"10.1145\/3230624"},{"key":"e_1_3_2_36_2","unstructured":"Patrick Lam Eric Bodden Ondrej Lhot\u00e1k and Laurie J. Hendren. 2011. The Soot framework for Java program analysis: a retrospective. In Cetus Users and Compiler Infrastructure Workshop (CETUS 2011)."},{"key":"e_1_3_2_37_2","doi-asserted-by":"publisher","DOI":"10.1145\/1926385.1926389"},{"key":"e_1_3_2_38_2","doi-asserted-by":"publisher","DOI":"10.1007\/3-540-36579-6_12"},{"key":"e_1_3_2_39_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-54833-8_27"},{"key":"e_1_3_2_40_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-540-31987-0_2"},{"key":"e_1_3_2_41_2","doi-asserted-by":"publisher","DOI":"10.1145\/1159803.1159807"},{"key":"e_1_3_2_42_2","doi-asserted-by":"publisher","DOI":"10.1007\/s10990-006-8609-1"},{"key":"e_1_3_2_43_2","doi-asserted-by":"publisher","DOI":"10.2168\/LMCS-8(1:26)2012"},{"key":"e_1_3_2_44_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-54013-4_3"},{"key":"e_1_3_2_45_2","doi-asserted-by":"publisher","DOI":"10.1016\/j.entcs.2017.02.002"},{"key":"e_1_3_2_46_2","volume-title":"Static type and value analysis by abstract interpretation of Python programs with native C libraries. (Analyse statique, de type et de valeur, par interpr\u00e9tation abstraite, de programmes Python utilisant des librairies C). Ph.D. Dissertation","author":"Monat Rapha\u00ebl","year":"2021","unstructured":"Rapha\u00ebl Monat. 2021. Static type and value analysis by abstract interpretation of Python programs with native C libraries. (Analyse statique, de type et de valeur, par interpr\u00e9tation abstraite, de programmes Python utilisant des librairies C). Ph.D. Dissertation. Sorbonne University, Paris, France. https:\/\/tel.archives-ouvertes.fr\/tel-03533030"},{"key":"e_1_3_2_47_2","doi-asserted-by":"publisher","DOI":"10.1145\/3394451.3397205"},{"key":"e_1_3_2_48_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-030-11245-5_12"},{"key":"e_1_3_2_49_2","doi-asserted-by":"publisher","DOI":"10.1145\/3464457"},{"key":"e_1_3_2_50_2","doi-asserted-by":"publisher","DOI":"10.1145\/199448.199462"},{"key":"e_1_3_2_51_2","doi-asserted-by":"publisher","DOI":"10.1145\/1353445.1353447"},{"key":"e_1_3_2_52_2","doi-asserted-by":"publisher","DOI":"10.1145\/1275497.1275501"},{"key":"e_1_3_2_53_2","doi-asserted-by":"publisher","DOI":"10.1109\/ASE51524.2021.9678903"},{"key":"e_1_3_2_54_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-540-77220-0_25"},{"key":"e_1_3_2_55_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-031-57256-2_25"},{"key":"e_1_3_2_56_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-030-72013-1_28"},{"key":"e_1_3_2_57_2","doi-asserted-by":"publisher","DOI":"10.1007\/S10009-024-00773-Y"},{"key":"e_1_3_2_58_2","doi-asserted-by":"publisher","DOI":"10.1145\/3589250.3596140"},{"key":"e_1_3_2_59_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-030-88806-0_18"},{"key":"e_1_3_2_60_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-031-30044-8_2"},{"key":"e_1_3_2_61_2","doi-asserted-by":"publisher","DOI":"10.3176\/phys.math.2003.4.05"},{"key":"e_1_3_2_62_2","doi-asserted-by":"publisher","DOI":"10.1017\/S0960129521000499"},{"key":"e_1_3_2_63_2","doi-asserted-by":"publisher","DOI":"10.5555\/124950"},{"key":"e_1_3_2_64_2","doi-asserted-by":"publisher","DOI":"10.1145\/237721.237727"},{"key":"e_1_3_2_65_2","doi-asserted-by":"publisher","unstructured":"Fabian Stemmler Michael Schwarz Julian Erhard Sarah Tilscher and Helmut Seidl. 2025. Artifact for \u2018Taking out the Toxic Trash: Recovering Precision in Mixed Flow-Sensitive Static Analyses\u2019. https:\/\/doi.org\/10.5281\/zenodo.15245617 10.5281\/zenodo.15245617","DOI":"10.5281\/zenodo.15245617"},{"key":"e_1_3_2_66_2","doi-asserted-by":"publisher","DOI":"10.1016\/JJSS.2018.10.001"},{"key":"e_1_3_2_67_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-030-02768-1_6"},{"key":"e_1_3_2_68_2","doi-asserted-by":"publisher","DOI":"10.4230\/LIPICS.ECOOP.2019.10"},{"key":"e_1_3_2_69_2","doi-asserted-by":"publisher","DOI":"10.1109\/SCAM51674.2020.00009"},{"key":"e_1_3_2_70_2","doi-asserted-by":"publisher","DOI":"10.1145\/1863543.1863553"},{"key":"e_1_3_2_71_2","doi-asserted-by":"publisher","DOI":"10.1145\/2970276.2970337"},{"key":"e_1_3_2_72_2","doi-asserted-by":"publisher","DOI":"10.1134\/S0361768815010065"}],"container-title":["Proceedings of the ACM on Programming Languages"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3729297","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2026,7,16]],"date-time":"2026-07-16T10:03:21Z","timestamp":1784196201000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3729297"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2025,6,10]]},"references-count":71,"journal-issue":{"issue":"PLDI","published-print":{"date-parts":[[2025,6,10]]}},"alternative-id":["10.1145\/3729297"],"URL":"https:\/\/doi.org\/10.1145\/3729297","relation":{},"ISSN":["2475-1421"],"issn-type":[{"value":"2475-1421","type":"electronic"}],"subject":[],"published":{"date-parts":[[2025,6,10]]},"assertion":[{"value":"2024-11-15","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2025-03-06","order":2,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2025-06-13","order":3,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}