编译原理(五)短语,句柄定义,语法与正则文法互转

这一节十分简单

短语,简单(直接)短语,句柄

这些概念好像是不能记忆的,因此通俗写下来,

句柄和直接短语的节点的父节点必须是同一个,短语更宽泛一些,就是这样。

 

歧义就是不知道选哪一个,既然不知道选哪一个就必然有牺牲,优先级联规则就是特例化了。首先说,你得看这是什么文法,很明显是LL文法了,因为这不算LR歧义。而这样还有左递归。。。LL是没有左递归的。。。这题有问题啊。

这个就不懂了。那左递归怎么办?它必然有一个递归,不然如何扩展呢?这题有问题啊,要不然就是LR。

左结合是指一个数的左边和右边都有运算符时例如+1+,参与左边运算符的运算。左结合,即a+b+c应该先算a+b。

设计好的文法是否就是该语言的文法,这个需要严格的证明,但是一般都不证明,也就是说,只要能够符合几个特例,就可以往上搬。

文法转正规式,直接带入转成一个大长串,然后合并规约,例如下面的题

正规式转文法,把有多个解释的拆成多个表达式,就是这样,例如下面的题

自动机转文法,正规式

文法,正规式转自动机

自然语言转正规式

这道题给出了文法转为正规式的一种有效方法。

从图中可以看出,NFA可以直接表示出正规式,也可以直接表现出文法,它就是文法本身。

对于根据描述构造文法或者正规式的,一般方法是构造自动机,构造自动机被认为是最简单的方法。

这一点也说明了,正规式也可以直接推导出文法。只是务必保证要全面。就是从*和+做文章就行。

关键就是自然语言转正规式上,说是用自动机,可能自动机都画不出来。

下推自动机就是带栈的自动机,有穷自动机没有栈,也就是说,有穷自动机无法做计数的文法是吧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值