编译原理知识点

本文详细介绍了形式语言与自动机理论的核心概念,包括NFA转DFA、DFA的化简,first()和follow()的计算以及LL(1)分析表的构造,消除文法二义性,LR(0)项集与SLR预测表的建立,以及SSD和SDT的生成。此外,还探讨了相关属性和三地址码在编译原理中的应用。
摘要由CSDN通过智能技术生成

所有章节视频讲解和例题讲解链接: link(非本人b站视频)

1、NFA转DFA和DFA的化简

空-closure闭包

经空转换后到达的状态集合(如closure(s),结果包含s本身状态)

move(s,a)

s状态集经过a转换后的状态集(结果不包含s本身,只包含转换后的状态)

dtrans = closure(move(s))

设开始符号的closure()闭包A为初始状态集,不断进行dtrans操作直至没有新的状态集

2、求first()和follow()并构建ll(1)分析表

增广文法

当开始符号即在产生式左侧出现也在右侧出现,新增符号S‘,并增加产生式S’->S

消除左递归

形如 T->T+s|a的产生式,新增符号T变为如下形式(可以先分析出存在左递归的产生式的正则表达式分析语义后新增符号消除左递归):

T->aT’

T’->+sT’| 空

first()

形如 T->+Sa的产生式(+,a为终结符):

first(T)+= {+}

形如T->Sa的产生式(a为终结符)

first(T)+ = first(S)

follow()

形如T->+Sa的产生式(+,a为终结符):

follow(S)+={a}

形如T->+SK的产生式(+为终结符):

follow(S)+= first(K)- 空

形如T->

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值