Austin 将一个使用类似 Python 语法运行的 FizzBuzz 程序压缩到了 1024 字节的源代码中,但未能实现 512 字节的目标。最终得到的解释器支持整数变量、赋值、算术运算、控制结构、函数和打印。不过,其中没有字节码、语法树和错误处理;变量名也被限制为单个小写字母。
为何重要
该项目直观地展示了:要运行一门编程语言的基本功能,哪些层是必需的,哪些层可以舍弃。由于源代码长度受到限制,最终形成的结构与其说是一个功能完整的 Python 实现,不如说是展示语言特性最小可行组合的示例。省略字节码、语法树和错误处理表明,精简代码所付出的代价不仅体现在技术层面,也体现在易用性和健壮性方面。变量名的限制以及未能达到 512 字节的目标,使这类高度压缩的工作中功能与代码大小之间的界限仍然模糊。就这一点而言,该项目展现了解释器设计如何在技术限制下实现简化。