Just wondering if any of you have tried out Halide [http://halide-lang.org/]. It's a language/C++/Python library for which the aim seems to be to separate the functional steps of an algorithm from issues of how things are parallelised and cached. From a naive perspective, the separation of 'what' vs 'how'/'where' seems like it could be a good idea for keeping optimised code readable. What are your thoughts on this?
Are there any simple things you can do with plain C to emulate this separation? Would metaprogramming be required or could you do something with clever application of function pointers etc?