Sun Aug 14 13:48:40 CEST 2011
Now that tools are accessible, where do I need to go next?
The main point is about "manually guided partial evaluation", which
means that from specification -> implementation the following should
- expensive run-time binding removed, i.e.:
* don't implement higher order functions (that abstract iteration
/ mapping) as function calls, but specialize them to the
function(s) they are applied to.
* manage duplication, i.e. unrolling to expose software
- put the code into a form that allows lower level compiler
(i.e. LLVM) to optimize it further.
* pick a serialization for an inherently multi-dimensional
problem. tune this to the memory hierarchy.
Since the Symantics approach is now +- clear to me, it might be better
to leave it alone for a while and work directly on top of the
LLVM.Util.Arithmetic abstractions. It looks like these LLVM bindings
are a good way to learn more Haskell by reading code.