开发者生态
morning
显示 HN:蚕食
2026-05-14
1 阅读
glouwbug
Nibble 是类 C 的系统编程语言。 Nibble 用 3000 行 C 语言编写,演示了一种无需依赖外部依赖项或堆分配即可生成 LLVM IR 的方法。 Nibble 支持延迟、递归、整数、浮点和布尔类型、结构(简称类型)、类似 GLSL 的结构运算符、指针、函数指针、分支、循环、类型检查、通过通用指针实现的基本 C 互操作性以及合理的错误消息。其中包括展示 Nibble 能力的四个图形演示。要尝试它们,请确保首先安装 SDL2 以及 Clang,然后运行 make 。 Clang 将编译 main.c 并输出 nibble 编译器,然后 nibble 将编译并运行图形演示。在这四个演示中,两个演示是流行着色器玩具演示的多线程软件再现,一个演示是红黑树实现的演示,最后一个演示演示了游戏编程的基本设置。 Thoughts Nibble 按设计在一次传递中自上而下进行编译,并自由分配,甚至在循环内也是如此。这种简化的前端设计极大地提高了 main.c 的可读性,但会因较低(有时甚至更高)的 clang 后端优化而导致堆栈溢出。我的印象是 clang 的后端优化器会将所有分配提升到函数的顶层,但我们在生活中学习。我一直想探索 stacksave/stackrestore,但我的 LLVM 好奇心或多或少得到了满足,我认为这个编译器暂时完成了。