[编译原理随记]预测分析法-左递归右递归

本文介绍了编译原理中的预测分析法,重点讨论了左递归和右递归的概念。通过消除左递归转换为右递归,确保在语法分析过程中能正确确定超前扫描符号,从而实现无二义的解析。此外,还提到了非终结符、终结符和ε产生式等关键概念,并预告了后续关于翻译器的中序转后缀运算的文章。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

准备名词:

二义性:同一个记号串,能被多种分析树生成,这样的文法叫做二义性的文法。

超前扫描符号(lookahead):输入中当前被扫描的符号,就是输入串最左边第一个符号,当完成这个符号扫描之后,串的下一个称为lookahead。

非终结符:就是输入串可以继续拆分的符号。

终结符:输入串里面不能再拆分的符号。

预测分析法(一种递归下降分析法):是一种自顶向下的语法分析方法,使用超前扫描符号无二义地确定每个非终结符选择的过程,可以无二义处理非终结符。(从上往下,从左往右解析)

ε产生式:是一个空串的产生式。

左递归-右递归:

如果有一个这样产生式:

expr \rightarrow expr + term | term

那么就会无限地左递归,假如使用预测分析法,没办法确认超前扫描符号的位置,所以需要改成右递归才能确认超前扫描符号。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值