futhark (hackage): Futhark is a small programming language designed to be compiled to efficient parallel code. It is a statically typed, data-parallel, and purely functional array language in the ML family, and comes with a heavily optimising ahead-of-time compiler that presently generates GPU code via CUDA and OpenCL, although the language itself is hardware-agnostic.  For more information, see the website at https://futhark-lang.org  For introductionary information about hacking on the Futhark compiler, see the hacking guide. Regarding the internal design of the compiler, the following modules make good starting points:  Futhark contains a basic architectural overview of the compiler.  Futhark.IR.Syntax explains the basic design of the intermediate representation (IR).  Futhark.Construct explains how to write code that manipulates and creates AST fragments.
Keywords: futhark|library|program