编译原理 syntax analysis

语法分析

词法分析之后,拿到一系列token,然后经过了语法分析生成抽象语法树,如下所示: alt text 其中的E类似一个占位符,在grammar中通过递归定义

按照步骤构造一个parser的过程如下:alt text

3.1 Context-Free Grammars

在之前,我们的词义分析做到的是讲将所有的输入转化为了token序列,利用的工具是正则表达式;但是在检查语法的时候,就需要使用上下文无关语言检查语法(比方说,我要检查括号匹配(两边括号数量相同),就超出了FA的表达范围) alt text

def left-most derivation(最左推导):每次展开一个最左边的非终结符;类似地还有最右推导。如果一个文法没有歧义,二者推出的应当是同一个parse tree

3.2 Top-Down Parsing

我们主要关心无歧义文法的一个子集,即LL(1)文法;这是一种预测性的分析


编译原理 syntax analysis
https://zrwrz.github.io/2026/03/19/编译原理-syntax-analysis/
作者
zrw
发布于
2026年3月19日
许可协议