三、语法分析器构造原理【待更】

本文详细介绍了语法分析器的构造原理,包括自顶向下分析的无回溯方法、递归下降分析、消除左递归与公共前缀,以及LL1文法和预测分析表的概念。同时,文章探讨了自底向上分析的基本方法,增广文法的作用,LR分析法以及移进-归约和归约-归约冲突的解决策略。

一、自顶向下分析(top-down parsing)

1.自顶向下构造分析树一般方法:

采用最左推导方式,总选择句型中最左非终结符进行替换,替换时根据输入流的下一个终结符选择一个候选式。自顶向下构造方法可能引起回溯操作因此需要一定文法规则支持来避免回溯(即消除公共前缀),又要防止无限推导(即消除左递归)。下图是一个无回溯操作的自顶向下分析树构造方法。

 

2.递归下降分析(recursive-descent parsing):

由一组过程(即函数)组成,每个过程对应一个非终结符。

 

3.消除左递归文法(left recursive):

对于文法 E  E+T ,会使自顶向下分析产生无限循环 E  E+T  E+E+T  ...。

(1)消除直接左递归:

A  Aa | b 这种表示   Aaaaa...  baaaa... (即b打头的a串,a个数可以为0),则可改写为

<1> A  bA'            <2> A'  aA' | ε

即把左递归改写为右递归。

若把  T  T*F | F  改写,则我们把*F看作上述a,得到

<1> T  FT'            <2> T'  *FT' | ε

以下为一般形式

A  Aa1 | Aa2 | ... | Aan | b1 | b2 | ... | bm , 消除直接左递归改写为

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值