用 1024 字节 C 代码写一个能跑 FizzBuzz 的 Python 解释器
来源:austinhenley.com — austinhenley.com · 290 分 · by azhenley
📋 概述
Austin Z. Henley 分享他的周末手写代码挑战:不用宏、不靠库,用恰好 1024 字节的 C 代码写一个能跑 FizzBuzz 的伪 Python 解释器。它完全没有中间表示——把源码塞进固定数组、符号表只有 256 个整型,用递归下降解析并边解析边执行;循环靠跳回源码位置重新解析、函数靠保存调用点再跳到函数体,实现真递归。可读版本超过 4800 字节,靠单字母变量、ASCII 字面量、隐式 int 等 code golf 手法压到 1024。虽是玩具,却展示了解释器原理最极简的形态。
🔑 核心要点
- 用恰好 1024 字节的 C 代码实现一个可跑 FizzBuzz 的类 Python 解释器。
- 完全没有中间表示:边递归下降解析边执行,状态全在几个全局变量里。
- 循环与函数都靠跳回源码位置重新解析实现,函数甚至支持递归。
- 可读版超 4800 字节,经 code golf 压到 1024(单字母名、ASCII 字面量、隐式 int 等)。
- 支持整数变量、四则运算、if/while/for、函数调用与带缩进的块。
💡 金句
原来用 C 的调用栈去递归地重跑源码,也能让一段 Python 活过来——这大概是解释器最浪漫的极简形态。
👍 0
👎 0
← 返回 Hacker News 首页