编译原理(2)-----文法推导
来源:互联网 发布:博客源码哪个好 编辑:程序博客网 时间:2024/06/05 08:41
写在开始:
这一篇讲一讲形式文法的推导,学习是一个持之以恒的过程,尤其是像我这种初学者了。
注:这一篇的例子来自于统计自然语言处理这本书
形式文法的推导:
形式文法的推导比较好理解,即按文法G中的规则P推导
定义:设G=(N,Σ,P,S)是一个文法,在(N∪Σ)*上定义关系 (直接推导或派生)为:如果abc是(N∪Σ)*中
的符号串,且b->c是P中的一个产生式,那么,abc adc。
1、(读作按非平方方式派生)表示的传递闭包,即(N∪Σ)*上的符号串Xi到Xi+1至少经过一步推导或派生
2、(读作派生)表示的自反或传递闭包,即(N∪Σ)*上的符号串Xi到Xi+1至少经过n(n≥0)步推导或派生
3、如果已经明确某个推导是由给定文法G所产生的,那么符号中的G可以省略
最左推导:每步推导中只改写最左边的那个非终结符
最右推导:每步推导中只改写最右边的那个非终结符,又称规范推导
举个栗子:
S->PNP(这里的S表示文法的初始符Start,而不是句子。)
NP->NN | NP Aux NP P->关于 (解释:NP改写为NN或者NP Aux NP,P改写为”关于“)
NN->鲁迅 | 文章 Aux->的 (解释:NN改写为”鲁迅“或者”文章“,Aux改写为”的“)
于是根据这一组文法规则,”关于鲁迅的文章“的最左推导为
S⇒P NP⇒关于 NP⇒关于NP Aux NP⇒关于NN Aux NP⇒关于鲁迅 Aux NP⇒关于鲁迅的 NP
⇒关于鲁迅的 NN⇒关于鲁迅的文章
同理,字符串”关于鲁迅的文章“的最右推导为
S⇒P NP⇒P NP Aux NP⇒P NP Aux NN⇒P NP Aux 文章⇒P NP 的文章⇒P NN的文章
⇒P 鲁迅的文章⇒关于鲁迅的文章
这篇文章大部分部分的内容借鉴了统计自然语言处理这本书,加油!
- 编译原理(2)-----文法推导
- 编译原理--文法分类和推导树
- 编译原理(2):文法和语言
- 编译原理(1)-----文法
- 编译原理(2) 文法 有限自动机 正规式
- 编译原理(5)-----2型文法和下推自动机
- 自然语言 和编译原理中的(1型文法)上下文有关文法和(2型文法)上下文无关文法CFG
- 【编译原理】(2)上下文无关文法
- 编译原理之文法(一)
- 编译原理之文法(二)
- 【软考】(一)编译原理-文法
- 【编译原理】乔姆斯基(chomsky)文法分类
- 编译原理LL(1)文法
- 编译原理-文法
- 编译原理-文法
- 编译原理LL1文法
- 编译原理--文法
- 编译原理 LR文法
- Beetl学习总结(1)——新一代java模板引擎典范 Beetl入门
- cocos creator ios回调js代码传入中文参数出现乱码的解决
- ngApp
- 不能说的秘密-重载、重写与继承中的构造方法
- Android 以流的方式读取服务器图片文件
- 编译原理(2)-----文法推导
- 来到CSDN博客
- 离线轻量级大数据平台Spark之MLib机器学习库SVM实例
- OpenGL混合功能与抗锯齿
- Java中自定义异常
- RecyclerView之ItemDecoration详解
- 进程和线程
- Linux系统移植实验---内存调试
- [JAVA] Servlet 开发基础