周末速成编译器:TinyCompiler 项目

2025-02-20

作者在周末时间内编写了一个名为 TinyCompiler 的极简编译器,它将作者自己创造的名为 Wend 的编程语言翻译成 GNU 汇编语言。Wend 语言设计简洁,没有指针、数组等复杂特性,旨在用最少的代码实现编译器的核心概念。项目代码不到 500 行 Python,并包含了测试程序,例如计算固定点平方根、曼德布罗特集合和简单的游戏等,适合对编译器原理感兴趣的读者学习参考。

阅读更多
开发

仅用`#define`指令编写C代码:黑魔法般的火焰动画

2025-02-20

本文讲述了作者如何仅使用C语言的`#define`指令编写一个火焰动画程序。这看似不可能的任务,通过巧妙地运用宏定义的文本替换特性、标记拼接以及递归调用技巧,最终实现了模拟火焰燃烧和扩散的效果,展现了C预处理器强大的能力和其“图灵完备性”的特性,同时也揭示了宏定义的潜在风险和不当使用可能带来的问题。

阅读更多
开发