Singeli: lenguaje de alto nivel para programación de bajo nivel

Fuentes: Singeli: High-level interface for low-level programming

Singeli es un lenguaje de dominio específico diseñado para la creación de algoritmos de alto rendimiento, incluyendo soporte para instrucciones SIMD. Implementado en BQN, cuenta con un frontend que genera código intermedio (IR) y un backend que emite código C, aunque está diseñado para ser compatible con otros backends como LLVM o código de máquina. El proyecto, que incluye aproximadamente 5.000 líneas de código en producción, se considera funcional y estable, habiendo completado el periodo de deprecación de cambios rotos tras seis meses.

El núcleo de Singeli es un lenguaje de metaprogramación que permite definir abstracciones sobre instrucciones de CPU. Su herramienta principal es el generador, una estructura similar a las macros de C o las plantillas de C++, pero con mayor flexibilidad y capacidad de expansión en tiempo de compilación. Los generadores son funciones de tiempo de compilación que permiten definir operadores y funciones con parámetros dinámicos y condiciones de tipo. Esto facilita la creación de código especializado y optimizado, donde la lógica compleja se resuelve en tiempo de compilación para generar código de ejecución simple.

La sintaxis de Singeli incluye estructuras de control imperativas como if, else y while, así como un mecanismo general para bucles for-each que maneja la vectorización y el desenrollado (unrolling) para SIMD. El sistema de tipos utiliza la sintaxis value:type, y el lenguaje es dinámicamente tipado. Además, ofrece una herramienta de depuración mediante lprintf{} y un entorno de juego interactivo (playground) para probar fragmentos de código sin el ciclo de compilación y depuración manual. Singeli está dirigido a programadores que buscan abstraer instrucciones de bajo nivel para mejorar el rendimiento de software crítico.