Statically Unrolling Recursion to Improve Opportunities for Parallelism
Deshpande
Neil Ashish
author
Columbia University. Computer Science
Edwards
Stephen A.
author
Columbia University. Computer Science
Columbia University. Computer Science
originator
contributor
text
Technical reports
New York
Department of Computer Science, Columbia University
2012
We present an algorithm for unrolling recursion in the Haskell functional language. Adapted from a similar algorithm proposed by Rugina and Rinard for imperative languages, it essentially inlines a function in itself as many times as requested. This algorithm aims to increase the available parallelism in recursive functions, with an eye toward its eventual application in a Haskell-to-hardware compiler. We first illustrate the technique on a series of examples, then describe the algorithm, and finally show its Haskell source, which operates as a plug-in for the Glasgow Haskell Compiler.
Computer science
Columbia University Computer Science Technical Reports
CUCS-011-12
http://hdl.handle.net/10022/AC:P:14249
English
NNC
NNC
2012-07-26 12:28:17 -0400
2012-07-30 09:49:11 -0400
8258
eng