{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,2,5]],"date-time":"2026-02-05T07:52:23Z","timestamp":1770277943835,"version":"3.49.0"},"reference-count":33,"publisher":"Association for Computing Machinery (ACM)","issue":"OOPSLA","license":[{"start":{"date-parts":[[2018,10,24]],"date-time":"2018-10-24T00:00:00Z","timestamp":1540339200000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0\/"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["Proc. ACM Program. Lang."],"published-print":{"date-parts":[[2018,10,24]]},"abstract":"<jats:p>Object sensitivity analysis is a well-known form of context-sensitive points-to analysis. This analysis is parameterized by a bound on the names of symbolic objects associated with each allocation site. In this paper, we propose a novel approach based on object sensitivity analysis that takes as input a set of client queries, and tries to answer them using an initial round of inexpensive object sensitivity analysis that uses a low object-name length bound at all allocation sites. For the queries that are answered unsatisfactorily, the approach then pin points \"bad\" points-to facts, which are the ones that are responsible for the imprecision. It then employs a form of program slicing to identify allocation sites that are potentially causing these bad points-to facts to be generated. The approach then runs object sensitivity analysis once again, this time using longer names for just these allocation sites, with the objective of resolving the imprecision in this round. We describe our approach formally, prove its completeness, and describe a Datalog-based implementation of it on top of the Petablox framework. Our evaluation of our approach on a set of large Java benchmarks, using two separate clients, reveals that our approach is more precise than the baseline object sensitivity approach, by around 29% for one of the clients and by around 19% for the other client. Our approach is also more precise on most large benchmarks than a recently proposed approach that uses SAT solvers to identify allocation sites to refine.<\/jats:p>","DOI":"10.1145\/3276512","type":"journal-article","created":{"date-parts":[[2018,10,24]],"date-time":"2018-10-24T11:57:18Z","timestamp":1540382238000},"page":"1-27","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":4,"title":["Refinement in object-sensitivity points-to analysis via slicing"],"prefix":"10.1145","volume":"2","author":[{"given":"Girish Maskeri","family":"Rama","sequence":"first","affiliation":[{"name":"Infosys, India"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Raghavan","family":"Komondoor","sequence":"additional","affiliation":[{"name":"IISc Bangalore, India"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Himanshu","family":"Sharma","sequence":"additional","affiliation":[{"name":"IISc Bangalore, India"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2018,10,24]]},"reference":[{"key":"e_1_2_2_1_1","doi-asserted-by":"publisher","DOI":"10.5555\/645672.665558"},{"key":"e_1_2_2_2_1","doi-asserted-by":"publisher","DOI":"10.1016\/S0950-5849(98)00086-X"},{"key":"e_1_2_2_3_1","doi-asserted-by":"publisher","DOI":"10.1145\/292540.292554"},{"key":"e_1_2_2_4_1","doi-asserted-by":"publisher","DOI":"10.1145\/375431.375418"},{"key":"e_1_2_2_5_1","doi-asserted-by":"publisher","DOI":"10.1145\/178243.178264"},{"key":"e_1_2_2_6_1","doi-asserted-by":"publisher","DOI":"10.1145\/24039.24041"},{"key":"e_1_2_2_7_1","doi-asserted-by":"publisher","DOI":"10.1145\/199448.199534"},{"key":"e_1_2_2_8_1","doi-asserted-by":"publisher","DOI":"10.5555\/1760267.1760284"},{"key":"e_1_2_2_9_1","doi-asserted-by":"publisher","DOI":"10.5555\/1762174.1762207"},{"key":"e_1_2_2_10_1","doi-asserted-by":"publisher","DOI":"10.1145\/996821.996830"},{"key":"e_1_2_2_11_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICSM.2001.972724"},{"key":"e_1_2_2_12_1","doi-asserted-by":"publisher","DOI":"10.1145\/77606.77608"},{"key":"e_1_2_2_13_1","doi-asserted-by":"publisher","DOI":"10.1145\/2931098"},{"key":"e_1_2_2_14_1","doi-asserted-by":"publisher","DOI":"10.1007\/11688839_5"},{"key":"e_1_2_2_15_1","volume-title":"Proc. International Conference on Software Maintenance. IEEE, 358\u2013367","author":"Liang Donglin","year":"1998","unstructured":"Donglin Liang and Mary Jean Harrold . 1998 . Slicing objects using system dependence graphs . In Proc. International Conference on Software Maintenance. IEEE, 358\u2013367 . Donglin Liang and Mary Jean Harrold. 1998. Slicing objects using system dependence graphs. In Proc. International Conference on Software Maintenance. IEEE, 358\u2013367."},{"key":"e_1_2_2_16_1","doi-asserted-by":"publisher","DOI":"10.1145\/1993498.1993567"},{"key":"e_1_2_2_17_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-33125-1_25"},{"key":"e_1_2_2_18_1","doi-asserted-by":"publisher","DOI":"10.1145\/949305.949333"},{"key":"e_1_2_2_19_1","volume-title":"2015 IEEE International Conference on Software Analysis, Evolution, and Reengineering (SANER). 281\u2013290","author":"Medicherla R. K.","unstructured":"R. K. Medicherla and R. Komondoor . 2015. Precision vs. scalability: Context sensitive analysis with prefix approximation . In 2015 IEEE International Conference on Software Analysis, Evolution, and Reengineering (SANER). 281\u2013290 . R. K. Medicherla and R. Komondoor. 2015. Precision vs. scalability: Context sensitive analysis with prefix approximation. In 2015 IEEE International Conference on Software Analysis, Evolution, and Reengineering (SANER). 281\u2013290."},{"key":"e_1_2_2_20_1","doi-asserted-by":"publisher","DOI":"10.1145\/1044834.1044835"},{"key":"e_1_2_2_21_1","doi-asserted-by":"publisher","DOI":"10.1145\/2594291.2594318"},{"key":"e_1_2_2_22_1","doi-asserted-by":"publisher","DOI":"10.5555\/782034.782044"},{"key":"e_1_2_2_23_1","volume-title":"Applications of Logic Databases","author":"Reps Thomas W","unstructured":"Thomas W Reps . 1995. Demand interprocedural program analysis using logic databases . In Applications of Logic Databases . Springer , 163\u2013196. Thomas W Reps. 1995. Demand interprocedural program analysis using logic databases. In Applications of Logic Databases. Springer, 163\u2013196."},{"key":"e_1_2_2_24_1","doi-asserted-by":"publisher","DOI":"10.1561\/2500000014"},{"key":"e_1_2_2_25_1","doi-asserted-by":"publisher","DOI":"10.1145\/1926385.1926390"},{"key":"e_1_2_2_26_1","doi-asserted-by":"publisher","DOI":"10.1145\/2594291.2594320"},{"key":"e_1_2_2_27_1","doi-asserted-by":"publisher","DOI":"10.1145\/1133981.1134027"},{"key":"e_1_2_2_28_1","volume-title":"Aliasing in Object-Oriented Programming. Types, Analysis and Verification","author":"Sridharan Manu","unstructured":"Manu Sridharan , Satish Chandra , Julian Dolby , Stephen J Fink , and Eran Yahav . 2013. Alias analysis for object-oriented programs . In Aliasing in Object-Oriented Programming. Types, Analysis and Verification . Springer , 196\u2013232. Manu Sridharan, Satish Chandra, Julian Dolby, Stephen J Fink, and Eran Yahav. 2013. Alias analysis for object-oriented programs. In Aliasing in Object-Oriented Programming. Types, Analysis and Verification. Springer, 196\u2013232."},{"key":"e_1_2_2_29_1","doi-asserted-by":"publisher","DOI":"10.1145\/1250734.1250748"},{"key":"e_1_2_2_30_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-662-53413-7_24"},{"key":"e_1_2_2_31_1","volume-title":"Proc. International Conference On Software Engineering. IEEE Press, 439\u2013449","author":"Weiser Mark","year":"1981","unstructured":"Mark Weiser . 1981 . Program slicing . In Proc. International Conference On Software Engineering. IEEE Press, 439\u2013449 . Mark Weiser. 1981. Program slicing. In Proc. International Conference On Software Engineering. IEEE Press, 439\u2013449."},{"key":"e_1_2_2_32_1","doi-asserted-by":"publisher","DOI":"10.1145\/996841.996859"},{"key":"e_1_2_2_33_1","doi-asserted-by":"publisher","DOI":"10.1145\/2594291.2594327"}],"container-title":["Proceedings of the ACM on Programming Languages"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3276512","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3276512","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T19:03:39Z","timestamp":1750273419000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3276512"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2018,10,24]]},"references-count":33,"journal-issue":{"issue":"OOPSLA","published-print":{"date-parts":[[2018,10,24]]}},"alternative-id":["10.1145\/3276512"],"URL":"https:\/\/doi.org\/10.1145\/3276512","relation":{},"ISSN":["2475-1421"],"issn-type":[{"value":"2475-1421","type":"electronic"}],"subject":[],"published":{"date-parts":[[2018,10,24]]},"assertion":[{"value":"2018-10-24","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}