【编译原理】自顶向下的语法分析之递归下降分析法

1. 基本原理

递归下降法是语法分析中最易懂的一种方法。

它的主要原理是,对每个非终极符按其产生式结构构造相应语法分析子程序,

其中终极符产生匹配命令,

而非终极符则产生过程调用命令。

因为文法递归相应子程序也递归,所以称这种方法为递归子程序下降法或递归下降法。

其中子程序的结构与产生式结构几乎是一致的。

2. 文法要求

递归下降法要满足的条件:假设A的全部产生式为A->β1|β2| …|βn

则必须满足如下条件才能保证可以唯一的选择合适的产生式

predict(A->βi)∩predict(A->βj)=Φ,当i≠j.

3. 实现原理

假设文法中有如下的产生式A->β1|β2| …|βn,则应按如下方法编写语法分析子程序

procedure A( )
begin if token∈Predict(A->β1) then θ(β1) else
         if token∈Predict(A->β2) then θ(β2) else
         ……
         if token∈Predict(A->βn) thenθ(βn) else
      err( ) 
end

其中对βi=X1X2…Xn,θ(βi) = θ’(X1);θ’(X2);…;θ’(Xn);
如果X∈VN,θ’(X)= X 
如果X∈VT,θ’(X)= Match(X) 
如果X=ε ,θ(ε) = skip(空语句)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值