第一句子网 - 唯美句子、句子迷、好句子大全
第一句子网 > 编译原理语法分析_斯坦福大学《编译原理》学习记录 - 第二章:语法分析器

编译原理语法分析_斯坦福大学《编译原理》学习记录 - 第二章:语法分析器

时间:2020-03-16 20:49:23

相关推荐

编译原理语法分析_斯坦福大学《编译原理》学习记录 - 第二章:语法分析器

05-01: Introduction to Parsing 语法分析

parser的作用:

05-02: Context Free Grammars 上下文无关文法

CFG(上下文无关文法)回答了一个字符串是否属于某语言:

CFG的组成:

终止符非终止符开始符生成式

生成式production (非终止符non-terminal -> 终止符terminal)

05-03: Derivations 推导

推导是一系列生成推导可以用树的形式表示一个推导可以定义一棵语法树,但是一棵语法树可以定义不同的推导最左推导和最右推导定义同一棵语法树

05-04: Ambiguity

Ambiguity:一个字符串对应多个语法树

避免二义性:

方法1:左递归写法

方法2:用Bison中的%定义

06-01: Error Handling

方法1:panic mode

skip input and try to continue

方法2:error production

specify known common mistakes in the grammar

方法3:error correction

try token insertions and deletion

06-02: Abstract Syntax Trees

AST:

06-03: Recursive Descent Parsing 递归下降语法分析

Recursive Descent 是一种通用的语法分析算法。

输入:token串

Recursive Descent :判断是否符合该(上下文无关)语言语法,并构建语法树

06-04: Recursive Descent Algorithm

递归下降具体算法:

从开始符号起,依次递归尝试每一个产生式。若返回匹配,且遍历到字符串末尾,则成功。

06-04-1: Recursive Descent Limitations

使用Recursive Descent做语法分析时,需转化左递归文法。

左递归文法是形如 S->Sa 的文法

左递归文法会导致无限循环。因为它本质上是从右到左推导的。而递归下降算法是从左到右推导的。

06-05: Left Recursion

将左递归文法转换为右递归文法的方法:

隐式左递归文法

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。