{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,11,12]],"date-time":"2025-11-12T03:23:10Z","timestamp":1762917790050,"version":"3.41.0"},"reference-count":26,"publisher":"Association for Computing Machinery (ACM)","issue":"ICFP","license":[{"start":{"date-parts":[[2017,8,29]],"date-time":"2017-08-29T00:00:00Z","timestamp":1503964800000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0\/"}],"funder":[{"DOI":"10.13039\/501100000781","name":"European Research Council","doi-asserted-by":"publisher","award":["682315"],"award-info":[{"award-number":["682315"]}],"id":[{"id":"10.13039\/501100000781","id-type":"DOI","asserted-by":"publisher"}]},{"DOI":"10.13039\/100000181","name":"Air Force Office of Scientific Research","doi-asserted-by":"publisher","award":["FA8655-13-1-3006"],"award-info":[{"award-number":["FA8655-13-1-3006"]}],"id":[{"id":"10.13039\/100000181","id-type":"DOI","asserted-by":"publisher"}]},{"DOI":"10.13039\/501100000266","name":"Engineering and Physical Sciences Research Council","doi-asserted-by":"publisher","award":["EP\/K034413\/1"],"award-info":[{"award-number":["EP\/K034413\/1"]}],"id":[{"id":"10.13039\/501100000266","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":[[2017,8,29]]},"abstract":"<jats:p>\n            Program slicing provides explanations that illustrate how program outputs were produced from inputs. We build on an approach introduced in prior work, where dynamic slicing was defined for pure higher-order functional programs as a Galois connection between lattices of partial inputs and partial outputs. We extend this approach to\n            <jats:italic>imperative functional programs<\/jats:italic>\n            that combine higher-order programming with references and exceptions. We present proofs of correctness and optimality of our approach and a proof-of-concept implementation and experimental evaluation.\n          <\/jats:p>","DOI":"10.1145\/3110258","type":"journal-article","created":{"date-parts":[[2017,8,29]],"date-time":"2017-08-29T18:19:41Z","timestamp":1504030781000},"page":"1-28","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":15,"title":["Imperative functional programs that explain their work"],"prefix":"10.1145","volume":"1","author":[{"given":"Wilmer","family":"Ricciotti","sequence":"first","affiliation":[{"name":"University of Edinburgh, UK"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Jan","family":"Stolarek","sequence":"additional","affiliation":[{"name":"University of Edinburgh, UK"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Roly","family":"Perera","sequence":"additional","affiliation":[{"name":"University of Edinburgh, UK"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"James","family":"Cheney","sequence":"additional","affiliation":[{"name":"University of Edinburgh, UK"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2017,8,29]]},"reference":[{"key":"e_1_2_2_1_1","doi-asserted-by":"publisher","DOI":"10.5555\/2595044.2595050"},{"key":"e_1_2_2_2_1","doi-asserted-by":"publisher","DOI":"10.1145\/2363.2366"},{"key":"e_1_2_2_4_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-37036-6_3"},{"key":"e_1_2_2_5_1","doi-asserted-by":"publisher","DOI":"10.1145\/2643135.2643143"},{"key":"e_1_2_2_6_1","doi-asserted-by":"publisher","DOI":"10.1145\/512950.512973"},{"key":"e_1_2_2_7_1","doi-asserted-by":"publisher","DOI":"10.1145\/2951913.2951934"},{"key":"e_1_2_2_8_1","doi-asserted-by":"publisher","DOI":"10.1017\/CBO9780511809088"},{"key":"e_1_2_2_9_1","doi-asserted-by":"publisher","DOI":"10.1016\/S0950-5849(98)00087-1"},{"key":"e_1_2_2_10_1","first-page":"46","volume-title":"Spring School on Generic and Indexed Programming","author":"Foster Nate","unstructured":"Nate Foster , Kazutaka Matsuda , and Janis Voigtl\u00e4nder . Three complementary approaches to bidirectional programming . In Jeremy Gibbons, editor, Spring School on Generic and Indexed Programming , volume 7470 , pages 1\u2013 46 . Springer, 2010. doi: 10.1007\/978- 3- 642- 32202- 0_1. 10.1007\/978- Nate Foster, Kazutaka Matsuda, and Janis Voigtl\u00e4nder. Three complementary approaches to bidirectional programming. In Jeremy Gibbons, editor, Spring School on Generic and Indexed Programming, volume 7470, pages 1\u201346. Springer, 2010. doi: 10.1007\/978- 3- 642- 32202- 0_1."},{"key":"e_1_2_2_11_1","doi-asserted-by":"publisher","DOI":"10.1145\/2837614.2837670"},{"key":"e_1_2_2_12_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.scico.2004.01.004"},{"key":"e_1_2_2_13_1","doi-asserted-by":"publisher","DOI":"10.1017\/S0956796800001465"},{"key":"e_1_2_2_14_1","doi-asserted-by":"publisher","DOI":"10.1016\/S0890-5401(03)00088-9"},{"key":"e_1_2_2_15_1","doi-asserted-by":"publisher","DOI":"10.1145\/1085130.1085138"},{"key":"e_1_2_2_16_1","doi-asserted-by":"publisher","DOI":"10.1007\/s10990-008-9023-7"},{"key":"e_1_2_2_17_1","doi-asserted-by":"publisher","DOI":"10.1145\/3009837.3009900"},{"key":"e_1_2_2_19_1","doi-asserted-by":"publisher","DOI":"10.1145\/2364527.2364579"},{"key":"e_1_2_2_20_1","first-page":"15","volume-title":"27th International Conference on Concurrency Theory (CONCUR 2016","author":"Perera Roly","year":"2016","unstructured":"Roly Perera , Deepak Garg , and James Cheney . Causally consistent dynamic slicing . In 27th International Conference on Concurrency Theory (CONCUR 2016 ), pages 18:1\u201318: 15 , 2016 . Roly Perera, Deepak Garg, and James Cheney. Causally consistent dynamic slicing. In 27th International Conference on Concurrency Theory (CONCUR 2016), pages 18:1\u201318:15, 2016."},{"key":"e_1_2_2_21_1","doi-asserted-by":"publisher","DOI":"10.1145\/2594291.2594319"},{"key":"e_1_2_2_22_1","doi-asserted-by":"publisher","DOI":"10.1145\/2784731.2784755"},{"issue":"6","key":"e_1_2_2_23_1","first-page":"854","article-title":"Higher-order lazy functional slicing","volume":"13","author":"Rodrigues Nuno F.","year":"2007","unstructured":"Nuno F. Rodrigues and Lu\u00eds S. Barbosa . Higher-order lazy functional slicing . Journal of Universal Computer Science , 13 ( 6 ): 854 \u2013 873 , June 2007 . Nuno F. Rodrigues and Lu\u00eds S. Barbosa. Higher-order lazy functional slicing. Journal of Universal Computer Science, 13(6): 854\u2013873, June 2007.","journal-title":"Journal of Universal Computer Science"},{"key":"e_1_2_2_24_1","doi-asserted-by":"publisher","DOI":"10.1145\/2951913.2951915"},{"key":"e_1_2_2_25_1","doi-asserted-by":"publisher","DOI":"10.1145\/1140335.1140355"},{"key":"e_1_2_2_26_1","doi-asserted-by":"publisher","DOI":"10.1145\/2034773.2034825"},{"key":"e_1_2_2_27_1","first-page":"449","volume-title":"ICSE","author":"Weiser Mark","year":"1981","unstructured":"Mark Weiser . Program slicing . In ICSE , pages 439\u2013 449 , 1981 . Mark Weiser. Program slicing. In ICSE, pages 439\u2013449, 1981."},{"key":"e_1_2_2_28_1","doi-asserted-by":"publisher","DOI":"10.1145\/1050849.1050865"}],"container-title":["Proceedings of the ACM on Programming Languages"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3110258","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3110258","content-type":"application\/pdf","content-version":"vor","intended-application":"syndication"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3110258","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T04:38:44Z","timestamp":1750221524000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3110258"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2017,8,29]]},"references-count":26,"journal-issue":{"issue":"ICFP","published-print":{"date-parts":[[2017,8,29]]}},"alternative-id":["10.1145\/3110258"],"URL":"https:\/\/doi.org\/10.1145\/3110258","relation":{},"ISSN":["2475-1421"],"issn-type":[{"type":"electronic","value":"2475-1421"}],"subject":[],"published":{"date-parts":[[2017,8,29]]},"assertion":[{"value":"2017-08-29","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}