Get the latest tech news
What it takes to add a new back end to Futhark
A high-performance and high-level purely functional data-parallel array programming language that can execute on the GPU and CPU.
For example, in the middle-end of the Futhark compiler, we initially use an IR dialect called SOACS, where parallelism is expressed using nested higher order operations quite similar to the source language. While it is true that an action can be arbitrary imperative code, in practice all of Futhark’s C-based backends (and even the Python ones) make use of significant shared infastructure to avoid having to reimplement the wheel too often. In contrast to the functional middle-end IR, which is very well defined, with type checking rules and a well-defined external syntax, Imp is a lot more ad hoc, and does not for example have a parser.
Or read this on Hacker News