{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,5,26]],"date-time":"2026-05-26T23:05:06Z","timestamp":1779836706401,"version":"3.53.1"},"reference-count":0,"publisher":"Cambridge University Press (CUP)","issue":"5","license":[{"start":{"date-parts":[[1997,9,1]],"date-time":"1997-09-01T00:00:00Z","timestamp":873072000000},"content-version":"unspecified","delay-in-days":0,"URL":"https:\/\/www.cambridge.org\/core\/terms"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["J. Funct. Prog."],"published-print":{"date-parts":[[1997,9]]},"abstract":"<jats:p>Functional-language compilers often perform optimizations \n\nbased on beta and delta reduction. \n\nTo avoid speculative optimizations that can blow up the code \n\nsize, we might wish to use \n\nonly shrinking reduction rules guaranteed to make the program \n\nsmaller: these include dead-variable elimination, constant \n\nfolding, and a restricted beta rule that inlines only functions \n\nthat are called just once. The restricted beta rule leads to \n\na shrinking rewrite system that \n\nhas not previously been studied. We show some efficient \n\nnormalization algorithms that are \n\nimmediately useful in optimizing compilers; and we give a \n\nconfluence proof for our system, \n\nshowing that the choice of normalization algorithm does not \n\naffect final code quality.<\/jats:p>","DOI":"10.1017\/s0956796897002839","type":"journal-article","created":{"date-parts":[[2002,7,27]],"date-time":"2002-07-27T09:26:15Z","timestamp":1027761975000},"page":"515-540","source":"Crossref","is-referenced-by-count":38,"title":["Shrinking lambda expressions in linear time"],"prefix":"10.1017","volume":"7","author":[{"given":"ANDREW W.","family":"APPEL","sequence":"first","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"TREVOR","family":"JIM","sequence":"additional","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"56","published-online":{"date-parts":[[1997,9,1]]},"container-title":["Journal of Functional Programming"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/www.cambridge.org\/core\/services\/aop-cambridge-core\/content\/view\/S0956796897002839","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2026,5,26]],"date-time":"2026-05-26T22:34:49Z","timestamp":1779834889000},"score":1,"resource":{"primary":{"URL":"https:\/\/www.cambridge.org\/core\/product\/identifier\/S0956796897002839\/type\/journal_article"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[1997,9]]},"references-count":0,"journal-issue":{"issue":"5","published-print":{"date-parts":[[1997,9]]}},"alternative-id":["S0956796897002839"],"URL":"https:\/\/doi.org\/10.1017\/s0956796897002839","relation":{},"ISSN":["0956-7968","1469-7653"],"issn-type":[{"value":"0956-7968","type":"print"},{"value":"1469-7653","type":"electronic"}],"subject":[],"published":{"date-parts":[[1997,9]]}}}