{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2023,9,4]],"date-time":"2023-09-04T19:56:32Z","timestamp":1693857392572},"reference-count":0,"publisher":"Cambridge University Press (CUP)","issue":"3","license":[{"start":{"date-parts":[[2001,5,31]],"date-time":"2001-05-31T00:00:00Z","timestamp":991267200000},"content-version":"unspecified","delay-in-days":30,"URL":"https:\/\/www.cambridge.org\/core\/terms"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["J. Funct. Prog."],"published-print":{"date-parts":[[2001,5]]},"abstract":"<jats:p>Destructive array update optimization is critical for writing scientific codes in functional \nlanguages. We present set constraints for an interprocedural update optimization that runs \nin polynomial time. This is a multi-pass optimization, involving interprocedural flow analyses \nfor aliasing and liveness. We characterize and prove the soundness of these analyses using \nsmall-step operational semantics. We also prove that any sound liveness analysis induces a \ncorrect program transformation.<\/jats:p>","DOI":"10.1017\/s0956796801003938","type":"journal-article","created":{"date-parts":[[2002,7,27]],"date-time":"2002-07-27T13:17:11Z","timestamp":1027775831000},"page":"319-346","source":"Crossref","is-referenced-by-count":10,"title":["Set constraints for destructive array update optimization"],"prefix":"10.1017","volume":"11","author":[{"given":"MITCHELL","family":"WAND","sequence":"first","affiliation":[]},{"given":"WILLIAM D.","family":"CLINGER","sequence":"additional","affiliation":[]}],"member":"56","published-online":{"date-parts":[[2001,5,31]]},"container-title":["Journal of Functional Programming"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/www.cambridge.org\/core\/services\/aop-cambridge-core\/content\/view\/S0956796801003938","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2019,3,29]],"date-time":"2019-03-29T19:34:03Z","timestamp":1553888043000},"score":1,"resource":{"primary":{"URL":"https:\/\/www.cambridge.org\/core\/product\/identifier\/S0956796801003938\/type\/journal_article"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2001,5]]},"references-count":0,"journal-issue":{"issue":"3","published-print":{"date-parts":[[2001,5]]}},"alternative-id":["S0956796801003938"],"URL":"https:\/\/doi.org\/10.1017\/s0956796801003938","relation":{},"ISSN":["0956-7968","1469-7653"],"issn-type":[{"value":"0956-7968","type":"print"},{"value":"1469-7653","type":"electronic"}],"subject":[],"published":{"date-parts":[[2001,5]]}}}