{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,10,26]],"date-time":"2026-10-26T16:52:36Z","timestamp":1793033556298,"version":"4.5.0"},"reference-count":23,"publisher":"Association for Computing Machinery (ACM)","issue":"5","license":[{"start":{"date-parts":[[2007,8,2]],"date-time":"2007-08-02T00:00:00Z","timestamp":1186012800000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Program. Lang. Syst."],"published-print":{"date-parts":[[2007,8,2]]},"abstract":"<jats:p>The notion of control dependence underlies many program analysis and transformation techniques. Despite being widely used, existing definitions and approaches to calculating control dependence are difficult to apply directly to modern program structures because these make substantial use of exception processing and increasingly support reactive systems designed to run indefinitely.<\/jats:p>\n          <jats:p>This article revisits foundational issues surrounding control dependence, and develops definitions and algorithms for computing several variations of control dependence that can be directly applied to modern program structures. To provide a foundation for slicing reactive systems, the article proposes a notion of slicing correctness based on weak bisimulation, and proves that some of these new definitions of control dependence generate slices that conform to this notion of correctness. This new framework of control dependence definitions, with corresponding correctness results, is even able to support programs with irreducible control flow graphs. Finally, a variety of properties show that the new definitions conservatively extend classic definitions. These new definitions and algorithms form the basis of the Indus Java slicer, a publicly available program slicer that has been implemented for full Java.<\/jats:p>","DOI":"10.1145\/1275497.1275502","type":"journal-article","created":{"date-parts":[[2007,9,14]],"date-time":"2007-09-14T13:44:55Z","timestamp":1189777495000},"page":"27","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":70,"title":["A new foundation for control dependence and slicing for modern program structures"],"prefix":"10.1145","volume":"29","author":[{"given":"Venkatesh Prasad","family":"Ranganath","sequence":"first","affiliation":[{"name":"Kansas State University, Manhattan, KS"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Torben","family":"Amtoft","sequence":"additional","affiliation":[{"name":"Kansas State University, Manhattan, KS"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Anindya","family":"Banerjee","sequence":"additional","affiliation":[{"name":"Kansas State University, Manhattan, KS"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"John","family":"Hatcliff","sequence":"additional","affiliation":[{"name":"Kansas State University, Manhattan, KS"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Matthew B.","family":"Dwyer","sequence":"additional","affiliation":[{"name":"University of Nebraska, Lincoln, NE"}],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"320","published-online":{"date-parts":[[2007,8,2]]},"reference":[{"key":"e_1_2_1_1_1","doi-asserted-by":"publisher","DOI":"10.1145\/777388.777394"},{"key":"e_1_2_1_3_1","volume-title":"Proceedings of the 1st International Workshop on Automated and Algorithmic Debugging (AADEBUG). Lecture Notes in Computer Science","volume":"749","author":"Ball T.","unstructured":"Ball , T. and Horwitz , S . 1993. Slicing programs with arbitrary control-flow . In Proceedings of the 1st International Workshop on Automated and Algorithmic Debugging (AADEBUG). Lecture Notes in Computer Science , vol. 749 . Springer, 206--222. Ball, T. and Horwitz, S. 1993. Slicing programs with arbitrary control-flow. In Proceedings of the 1st International Workshop on Automated and Algorithmic Debugging (AADEBUG). Lecture Notes in Computer Science, vol. 749. Springer, 206--222."},{"key":"e_1_2_1_4_1","doi-asserted-by":"publisher","DOI":"10.1145\/231379.231435"},{"key":"e_1_2_1_5_1","unstructured":"Clarke E. M. Grumberg O. and Peled D. A. 1999. Model Checking. MIT Press Cambridge MA.   Clarke E. M. Grumberg O. and Peled D. A. 1999. Model Checking. MIT Press Cambridge MA."},{"key":"e_1_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.1145\/337180.337234"},{"key":"e_1_2_1_7_1","doi-asserted-by":"publisher","DOI":"10.1145\/24039.24041"},{"key":"e_1_2_1_8_1","volume-title":"Proceedings of the 7th IEEE International Workshop on Program Comprehension (IWPC). 106--113","author":"Francel M. A.","unstructured":"Francel , M. A. and Rugaber , S . 1999. The relationship of slicing and debugging to program understanding . In Proceedings of the 7th IEEE International Workshop on Program Comprehension (IWPC). 106--113 . Francel, M. A. and Rugaber, S. 1999. The relationship of slicing and debugging to program understanding. In Proceedings of the 7th IEEE International Workshop on Program Comprehension (IWPC). 106--113."},{"key":"e_1_2_1_9_1","doi-asserted-by":"publisher","DOI":"10.1023\/A:1026599015809"},{"key":"e_1_2_1_10_1","volume-title":"Proceedings on the International Symposium on Static Analysis (SAS). Lecture Notes in Computer Science","volume":"1694","author":"Hatcliff J.","unstructured":"Hatcliff , J. , Corbett , J. C. , Dwyer , M. B. , Sokolowski , S. , and Zheng , H . 1999. A formal study of slicing for multi-threaded programs with JVM concurrency primitives . In Proceedings on the International Symposium on Static Analysis (SAS). Lecture Notes in Computer Science , vol. 1694 . Springer, 1--18. Hatcliff, J., Corbett, J. C., Dwyer, M. B., Sokolowski, S., and Zheng, H. 1999. A formal study of slicing for multi-threaded programs with JVM concurrency primitives. In Proceedings on the International Symposium on Static Analysis (SAS). Lecture Notes in Computer Science, vol. 1694. Springer, 1--18."},{"key":"e_1_2_1_11_1","doi-asserted-by":"publisher","DOI":"10.1145\/321832.321835"},{"key":"e_1_2_1_12_1","doi-asserted-by":"publisher","DOI":"10.1145\/77606.77608"},{"key":"e_1_2_1_13_1","doi-asserted-by":"publisher","DOI":"10.1145\/73141.74821"},{"key":"e_1_2_1_14_1","volume-title":"Proceedings of the 4th International SPIN Workshop.","author":"Millett L.","unstructured":"I. Millett , L. and Teitelbaum , T . 1998. Slicing Promela and its applications to model checking, simulation, and protocol understanding . In Proceedings of the 4th International SPIN Workshop. I. Millett, L. and Teitelbaum, T. 1998. Slicing Promela and its applications to model checking, simulation, and protocol understanding. In Proceedings of the 4th International SPIN Workshop."},{"key":"e_1_2_1_15_1","volume-title":"Kaveri: Delivering Indus Java program slicer to Eclipse","author":"Jayaraman G.","year":"2004","unstructured":"Jayaraman , G. , Ranganath , V. P. , and Hatcliff , J . 2004 . Kaveri: Delivering Indus Java program slicer to Eclipse . http:\/\/projects.cis.ksu.edu\/docman\/?group_id=12. Jayaraman, G., Ranganath, V. P., and Hatcliff, J. 2004. Kaveri: Delivering Indus Java program slicer to Eclipse. http:\/\/projects.cis.ksu.edu\/docman\/?group_id=12."},{"key":"e_1_2_1_16_1","doi-asserted-by":"publisher","DOI":"10.1145\/155090.155098"},{"key":"e_1_2_1_17_1","doi-asserted-by":"publisher","DOI":"10.1145\/277631.277638"},{"key":"e_1_2_1_18_1","volume-title":"Communication and Concurrency","author":"Milner R.","unstructured":"Milner , R. 1989. Communication and Concurrency . Prentice-Hall . ISBN: 0-13-115007-3. Milner, R. 1989. Communication and Concurrency. Prentice-Hall. ISBN: 0-13-115007-3."},{"key":"e_1_2_1_19_1","volume-title":"Advanced Compiler Design and Implementation. Morgan Kaufmann","author":"Muchnick S. S.","unstructured":"Muchnick , S. S. 1997. Advanced Compiler Design and Implementation. Morgan Kaufmann , San Francisco, CA . Muchnick, S. S. 1997. Advanced Compiler Design and Implementation. Morgan Kaufmann, San Francisco, CA."},{"key":"e_1_2_1_20_1","doi-asserted-by":"publisher","DOI":"10.1109\/32.58784"},{"key":"e_1_2_1_21_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-540-31987-0_7"},{"key":"e_1_2_1_22_1","unstructured":"SAnToS Laboratory. 2007 Indus a toolkit to customize and adapt Java programs. http:\/\/indus. projects.cis.ksu.edu.  SAnToS Laboratory. 2007 Indus a toolkit to customize and adapt Java programs. http:\/\/indus. projects.cis.ksu.edu."},{"key":"e_1_2_1_24_1","first-page":"121","article-title":"A survey of program slicing techniques","volume":"3","author":"Tip F.","year":"1995","unstructured":"Tip , F. 1995 . A survey of program slicing techniques . J. Programm. Lang. 3 , 121 -- 189 . Tip, F. 1995. A survey of program slicing techniques. J. Programm. Lang. 3, 121--189.","journal-title":"J. Programm. Lang."},{"key":"e_1_2_1_25_1","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.1984.5010248"}],"container-title":["ACM Transactions on Programming Languages and Systems"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/1275497.1275502","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/1275497.1275502","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T20:00:30Z","timestamp":1750276830000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/1275497.1275502"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2007,8,2]]},"references-count":23,"journal-issue":{"issue":"5","published-print":{"date-parts":[[2007,8,2]]}},"alternative-id":["10.1145\/1275497.1275502"],"URL":"https:\/\/doi.org\/10.1145\/1275497.1275502","relation":{},"ISSN":["0164-0925","1558-4593"],"issn-type":[{"value":"0164-0925","type":"print"},{"value":"1558-4593","type":"electronic"}],"subject":[],"published":{"date-parts":[[2007,8,2]]},"assertion":[{"value":"2007-08-02","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}