编译原理学习笔记02——(对最基本文法的理解)——2014_1_12

其实笔记01是有些问题的,因为是今天想到的,所以不再修改笔记01,而是记入笔记02中,作为不断理解的记录。


在笔记01中,假设老外懂的基本词汇只是面和猪肉,其实还有几个:用小笼蒸的,用xx把xx包起来,把xx切碎。即终结符有5个。


生成式也不止三个,还有 肉 生成 猪肉,应该是4个。非终结符感觉就是过渡用的。


***************************************************************************************

终结符和非终结符是相对的。不过,一般说来,


可以这样理解,非终结符不是具体,可以用某来代替;而终结符是具体的,不能用某来代替的。


比如 小明 是 斯基大学斯基学院三年级学生,


只有小明是具体,是终结符,而大学,学院,三年级学生都是过渡用的,可以用某代替,是非终结符。


所以,语法路线,就是从大概到具体,从不清楚的到清楚的。

******************************************************************************************


虽然我还没有写过编译器,不过看了文法的四种形式后,用心理解后,心里有说不出的感觉。是八股文复活?还是虐待学生提高门槛?


编译程序大多采用2型文法(网上说的),那么就讲2型文法好了,剩下的就是例外(看了很多课件,没有看到专门讲不同文法的编译程序)。而且也不用起这个像个机器人的名字,2型文法,改叫编译文法,多友善。


而且还发现一个问题,

2型文法包含于1型文法,1型文法叫上下文相关文法;2型文法叫上下文不相关文法。起的名字不科学:

如果从中文译名来看,1型文法和2型文法的交集就应该是空集,但实际上是2型文法。

1型文法英文context_free,应该这样理解上下文相关或上下文不相关联合文法。


不知道有多少没成功入门的学生是在这里被坑的。



看上去,好像很厉害,其实都是2型文法(3属于2)。什么是2型,就是编译文法。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值