An optimising compiler for a functional, array-oriented language.
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.
The Futhark Programming Language
Futhark is a purely functional data-parallel programming language in the ML family. It can be compiled to typically very efficient parallel code, running on either a CPU or GPU. The language is developed at DIKU at the University of Copenhagen, originally as part of the HIPERFIT centre. It is quite stable and suitable for practical programming.
For more information, see:
Parallel Programming in Futhark, an extensive introduction and guide
Hacking
Issues tagged with good first issue do not require deep knowledge of the code base.
For contributing code, see the hacking instructions.