Singeli: High-level interface for low-level programming
Singeli is a domain-specific language for building high-performance algorithms (including SIMD) with flexible abstractions over code that corresponds to individual instructions. It's implemented in BQN, with a frontend that emits IR and a backend that converts it to C (the IR is simple, so that other backends like LLVM or machine code could be supported without much work). Comments
Singeli is a domain-specific language designed for creating high-performance algorithms, including those with SIMD capabilities. It boasts flexible abstractions over code that map to individual instructions and can be implemented in BQN, a language of its own. The Singeli interpreter or compiler features a frontend that generates intermediate representation (IR) and a backend that converts it into C code.
It's a metaprogramming language, aiming to build abstractions around CPU instructions to generate specialized codes. Singeli includes a generator concept that allows for flexible, Turing-complete code creation during compilation. Generators can be programmed with parameters and behave differently based on conditions. They can be defined anonymously or named.
Singeli supports both left-associative and prefix syntax for operators. The language also provides debugging tools like compile-time print statements (`show{}`) and runtime printing (`lprintf{}`). Debugging can be done using the interactive Singeli playground or the singeli-lsp for advanced editing features. Singeli's design discussions have taken place in various online forums, and it currently has a stable core language.
The language caters to low-level programming, making it an ideal choice for developers looking to optimize their code for specific hardware instructions.
Written by urgent.news from Lobsters's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.