Strengthening supercompilation for call-by-value languages
2010 (English)In: Proceedings of the Second International Valentin Turchin Memorial Workshop on Metacomputation in Russia: Pereslavl-Zalessky, Russia, July 1–5, 2010 / [ed] A.P. Nemytykh, Pereslavl Zalessky: Ailamazyan University of Pereslavl , 2010, 64-81 p.Conference paper (Refereed)
A termination preserving supercompiler for a call-by-value language sometimes fails to remove intermediate structures that a supercompiler for a call-by-name language would remove. This discrepancy in power stems from the fact that many function bodies are either non-linear in use of an important variable or often start with a pattern match on their first argument and are therefore not strict in all their arguments. As a consequence, intermediate structures are left in the output program, making it slower. We present a revised supercompilation algorithm for a call-by-value language that propagates let-bindings into case-branches and uses termination analysis to remove dead code. This allows the algorithm to remove all intermediate structures for common examples where previous algorithms for call-by-value languages had to leave the intermediate structures in place.
Place, publisher, year, edition, pages
Pereslavl Zalessky: Ailamazyan University of Pereslavl , 2010. 64-81 p.
Research subject Dependable Communication and Computation Systems
IdentifiersURN: urn:nbn:se:ltu:diva-31966Local ID: 64bebbbd-d31c-45fe-8267-b8446c9bc20dISBN: 978-5-901795-21-7OAI: oai:DiVA.org:ltu-31966DiVA: diva2:1005200
International Valentin Turchin Memorial Workshop on Metacomputation in Russia : 01/07/2010 - 05/07/2010
Godkänd; 2010; 20110214 (pj)2016-09-302016-09-30Bibliographically approved