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.