A Specialised Haskell Processor on FPGA
A team of researchers have developed a specialised Haskell processor that operates on an FPGA and communicates through a UART port. This processor, named Ouros, is a combinator-based graph reduction machine. Instead of executing a sequence of instructions, the Haskell program is compiled into combinator graphs and reduced repeatedly.
Ouros supports automatic multi-threading, concurrent garbage collection, and IO capability. IO is introduced using the state-passing representation of the IO monad, allowing side effects without a software runtime. The processor can be programmed to read and write registers, which are connected to the outside world. The FPGA board used for demonstration is AUP-ZU3, donated by AMD, and the processor runs at 100 MHz.
Its resource usage is approximately 27% of LUTs, 7% of registers, and 40% of BRAM. While the FPGA demo may run slower than a modern laptop in terms of wall-clock speed, the implementation technology, circuit size, and power consumption model are all different, making a direct comparison difficult. The researchers see potential in using Ouros as a standalone computer running Haskell as its bare-metal programming language.
Written by urgent.news from Lobsters's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.