Lobsters | 📄 原文链接 | 2026-11-03 收录 · 热度 36

Pratt 解析是个黑箱:真正要掌握的不是那九行代码

来源:vinipsmaker.github.io — 2026-04-24

📋 概述

作者抱怨大多数 Pratt 解析教程都在讲算法细节,却不讲真正重要之处。在 Rhombus 这类高级语言里,Pratt 的核心只有九行:读一个 token,取它的 nud,然后在 rbp 小于下一个 token 的 lbp 时不断取 led 组合。他直言这段是整件事里最不重要的部分——他写了一年多编译器、核心解析机制就是 Pratt,却从没细究过这几行。类比很锋利:没人会因为不懂 quicksort 实现就不能用排序,compiler compiler 也是用代码生成器吐出解析引擎,而没人真去读那个引擎。文章真正的目标是「心法」:nud(如何处理出现在左侧的 token)与 led(如何处理左结合中缀)的分工,以及 Crockford 的那句话——Pratt 把复杂的解析压缩成一个问题:在一个 token 左边,我们期待看到什么。

🔑 核心要点

💡 金句

如果你丧失了抽象的能力,在计算机科学里哪也到不了,因为整个领域就是这么运转的。
← 返回 Lobsters 首页