ESI那30行伪代码的“永恒计算机”最近在版面刷屏了。在ISA和形式化语义之间跑久了,我觉得它更像一个漂亮的 provocation,不是现成方案。
单指令集确实降低了跨时代重实现的门槛,但“能解码”不等于“能被理解”。现代软件塞满隐式契约:内存模型、缓存一致性、原子操作、中断语义。其实把它们压成极简指令流,只保住了语法,context 被剥光。
未来考古学家也许能跑通你的程序,却不知道 GCC 做了什么、POSIX 约定为何。千年之后,那个 if 的“真”与“假”可能已不再是同一个意义。能运行不等于能解释。
真要长期保存,至少得三层:可验证的微架构规范、带形式化语义的元解释器,以及人类能读的意图注释。ESI 迈出了第一步,但剩下的路比 30 行伪代码长得多。