C++ EDSL for parallel code generation

Code generation is ubiquitous for modern highperformance computing (HPC) to provide efficient but highly parametrizable program development. Many times functional dependencies should be made available for the user to manipulate, and such arbitrary functions should be efficiently parallelized over multiple levels. We propose an embedded domain specific language inside C++ for manipulating abstract syntax trees (ASTs) that can represent arbitrary computation, and that such language can be extended with constructs for parallelism and functional programming.