compiling lazy functional languages

Sorry if this is too off-topic for this list. I'm a hobbyist programmer and I've recently become interested in lazy functional languages, particularly the optimization strategies available to them during compilation. I've been playing around with Haskell for about a year and it has been an excellent resource for me. I guess my main question is this: what are the x most compelling directions in optimized compilation for (pure) lazy functional languages in recent research (where x::Nat is an unevaluated thunk in your head) - Sam

On 1/18/06, Sam Goldman
Sorry if this is too off-topic for this list.
I'm a hobbyist programmer and I've recently become interested in lazy functional languages, particularly the optimization strategies available to them during compilation. I've been playing around with Haskell for about a year and it has been an excellent resource for me.
I guess my main question is this: what are the x most compelling directions in optimized compilation for (pure) lazy functional languages in recent research (where x::Nat is an unevaluated thunk in your head)
I'm not qualified to give any advice here, but I sure found Boquist's paper very interesting: http://www.cs.chalmers.se/~boquist/phd/ /S -- Sebastian Sylvan +46(0)736-818655 UIN: 44640862

On Wed, 2006-01-18 at 13:38 -0500, Sam Goldman wrote:
Sorry if this is too off-topic for this list.
I'm a hobbyist programmer and I've recently become interested in lazy functional languages, particularly the optimization strategies available to them during compilation. I've been playing around with Haskell for about a year and it has been an excellent resource for me.
I guess my main question is this: what are the x most compelling directions in optimized compilation for (pure) lazy functional languages in recent research (where x::Nat is an unevaluated thunk in your head)
Things that pop into my head immediately are: - Strictness analysis: there are far too many papers on this topic to list here. Google will give you a good idea. - Inlining (which facilitates other optimisations). See for instance: "Secrets of the Glasgow Haskell Compiler inliner". - Unboxing (passing arguments in evaluated form in registers rather than as pointers to heap objects). Simon Peyton Jones has a stack of papers about all sorts of compiler technologies (some of which fall under the title of optimisation). See: http://research.microsoft.com/~simonpj/Papers/papers.html#compiler That should give you enough to start with. Bernie.

On Jan 18, 2006, at 1:38 PM, Sam Goldman wrote:
Sorry if this is too off-topic for this list.
I'm a hobbyist programmer and I've recently become interested in lazy functional languages, particularly the optimization strategies available to them during compilation. I've been playing around with Haskell for about a year and it has been an excellent resource for me.
I guess my main question is this: what are the x most compelling directions in optimized compilation for (pure) lazy functional languages in recent research (where x::Nat is an unevaluated thunk in your head)
Hybrid lazy and eager evaluation. :-) I don't think Rob Ennals and I did more than scratch the surface here. There are tons of possible ideas and loose ends, every one solving the "space leaks for accumulating parameters" problem. Parallelism. The GHC folks are working on this, of course, and others have done good work in the past. But again, there's so much fertile ground that it's easy to contribute without redundancy... -Jan-Willem Maessen
- Sam _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
participants (4)
-
Bernard Pope
-
Jan-Willem Maessen
-
Sam Goldman
-
Sebastian Sylvan