← На главную

Разработчик представил язык Nibble на C с генерацией LLVM IR

14.05.2026 01:46 · hackernews

Разработчик представил Nibble — это новый язык программирования, написанный на C и состоящий всего из трёх тысяч строк кода. Его цель — продемонстрировать способ генерации LLVM IR без внешних зависимостей и выделения памяти кучи. Язык поддерживает отложенные действия, рекурсию, целочисленные и плавающие типы, булевы значения, структуры простых названий, операторы структур в стиле GLSL, указатели, указатели на функции, ветвления, циклы, проверку типов, базовую совместимость с C через универсальные указатели и понятные сообщения об ошибках. Для запуска четырёх графических демонстраций способностей Nibble сначала нужно установить SDL2 и Clang, затем выполнить команду make. Компилятор Clang соберёт файл main.c и выдаст компилятор nibble, который в свою очередь скомпилирует и запустит демо. Два из четырёх примеров — это многопоточные реализации популярных демо из shader-toy, один демонстрирует реализацию красно-чёрного дерева, а последний показывает базовую настройку для программирования игр. Сборка происходит сверху вниз за один проход и выделение памяти происходит свободно даже внутри циклов по замыслу. Такая упрощённая архитектура фронтенда значительно улучшает читаемость исходного кода main.c, но иногда приводит к переполнению стека, особенно при использовании оптимизаций бэкенда Clang, которые не всегда поднимают выделенную память на верхний уровень функции, как ожидалось. Автор признаётся, что давно хотел исследовать механизмы сохранения и восстановления стека, но его любознательность в области LLVM уже удовлетворена, и он считает компилятор временно законченным проектом.

Читать оригинал →