编译原理之 短语&直接短语&句柄 定义与区分

  • 一、关于短语
  • 二、关于直接短语
  • 三、关于句柄
  • 四、小练习
    • 1、练习一
    • 2、练习二
  • 五、知识加强拓展
    • 1、利用语法树寻找句型的短语、直接短语、句柄方法
    • 2、利用语法树寻找短语、句柄等方法总结
    • 3、利用语法树寻找短语、句柄举例

叮嘟!这里是小啊呜的学习课程资料整理。好记性不如烂笔头,今天也是努力进步的一天。一起加油进阶吧!

其中编译原理中的短语,直接短语,句柄的定义参见博文:
https://blog.csdn.net/it_dream_er/article/details/53612006

一、关于短语

书上的定义如下:

书上写的比较抽象,我这里简单解释一下,有两个文法,分别是:

S=*=>aAp (由于部分字符难以输入,在此用a,b,p代替)
A=+=>b

我们由此可以画出他的抽象语法树,如下:

那么,abp为此句型的短语 。

总结来说:一个句型的语法树中任一子树叶结点所组成的符号串都是该句型的短语,由这概念,那么我们自然可以想到,b也应该是该句型的一个短语。

二、关于直接短语

书中的定义:


书中的意思总结来说,指的是如果子树中不再包含其他的子树,即A只能推导出b,而b不能再推出其他的式子,则b为此句型的直接短语。

三、关于句柄

先来看一下书中的定义:

书中的意思就是:直接短语中的最左直接短语为该句型的句柄

四、小练习

1、练习一

如何证明E+T*F是句型呢?
最简单的方法就是画抽象语法树,如果能画出对应的抽象语法树,则就表明此表达式是文法的一个句型。

抽象语法树如下:

按如上的语法树可知,E=T*F为此文法的一个句型:

  • 短语: TF, E+TF

  • 直接短语:T*F

  • 句柄:T*F

简析:对于子树T来说,其所有叶子节点为:TF,对于E来说,其所有叶子节点为:E+TF故短语为 TF 和 E+TF

这个比较简单,我们下面来个比较复杂的题目。

2、练习二

S -> a|b|(T)
T -> TdS|S
证明(Sd(T)db)是S的一个句型,并求出短语,直接短语,句柄。

此文法的抽象语法树为:

由此可得S=(Sd(T)db)为此文法的一个句型:

  • 短语:S,(T),b,Sd(T),Sd(T)db,(Sd(T)db)
  • 直接短语:S,(T),b
  • 句柄:S

五、知识加强拓展

1、利用语法树寻找句型的短语、直接短语、句柄方法

2、利用语法树寻找短语、句柄等方法总结

3、利用语法树寻找短语、句柄举例

(1)示例一:


(2)示例二:


Ending!
更多课程知识学习记录随后再来吧!

就酱,嘎啦!

注:
1、我们愈是学习,愈觉得自己的贫乏。 —— 雪莱
2、编译原理中的短语,直接短语,句柄的定义参见文章:https://blog.csdn.net/it_dream_er/article/details/53612006

编译原理之 短语直接短语句柄 定义与区分相关推荐

  1. java pl0 四元式,【编译原理】c++实现自下而上语法分析及中间代码(四元式)生成...

    写在前面:本博客为本人原创,严禁任何形式的转载!本博客只允许放在博客园(.cnblogs.com),如果您在其他网站看到这篇博文,请通过下面这个唯一的合法链接转到原文! 本博客全网唯一合法URL:ht ...

  2. 编译原理基本定义(短语、直接短语、句柄、素短语、最左素短语)

    一般先根据句型写出语法树,然后再根据语法树进行求解. 举个例子: 先画出语法树(最左推导): 短语:在语法树中,先找出所有的非终结符,然后用叶子节点去替换他们,最后得到的集合就是短语的集合. 这里的非 ...

  3. 《编译原理》求短语,直接短语,句柄,素短语,最左素短语 - 例题解析

    <编译原理>求短语,直接短语,句柄,素短语,最左素短语 - 例题解析 笔记 (一)明确概念: 名称 概念 短语 定义: 若 S 为文法 G 的开始符号,αβδ 是该文法的一个句型,即 S ...

  4. 编译原理之:短语,直接短语,句柄

    由于我的编译原理课程不讲人话,在阅读<数据结构>和CSDN相关博文之后,总结编译原理语法分析中的三个词的定义: 1.短语,所有子树的末端节点行成的字符串. 2.直接短语,所有简单子树的末端 ...

  5. 编译原理:短语、直接短语、句柄、素短语、最左素短语案例零基础解析

    短语.直接短语.句柄.素短语.最左素短语为句型分析的有关问题,其编译原理(第三版)书中的章节分别为2.6.3和5.3.4 概念解析: PS:先了解文法.句型.句子等基础概念 短语: 某一个句型中可以成 ...

  6. 【编译原理】-- 第二章(二)(短语、简单短语、句柄、文法二义性、语法树、例题)

    目录 一.句型的分析 1.规范推导和规范归约 2.短语.简单短语和句柄 3.语法树 4.通过树来寻找短语.简单短语.句柄 二.文法的二义性 1.文法二义性的定义 2.文法二义性的消除 (1)定义规定或 ...

  7. 编译原理 —— 短语、直接短语、素短语和句柄

    定义 如果 βββ 中至少含有一个终结符,而且除它自身之外不再含任何更小的素短语,那么称 βββ 为 素短语 题目 令文法 G1G_1G1​ 为: ①S−>(L)∣aS∣a①S->(L)| ...

  8. 编译原理:素短语、短语、直接短语、句柄的基本概念

    素短语的概念:它是一个递归的定义,至少含有一个终结符,并且除它自身之外不再含任何更小的素短语,所谓最左素短语就是处于句型最左边的素短语的短语.而一个算符优先文法G的任何句型的最左素短语是满足以下条件的 ...

  9. 编译原理——短语、简单短语、句柄

    给出文法1: 下列句子1可由文法1推导得到: 接着构造句子1的语法树: 接下来给出短语.简单短语.句柄的不严谨定义: 短语:一棵树及其子树包含的所有叶节点组成的符号串,上图的短语为 id1 id1*i ...

最新文章

  1. 禁止Chrome浏览器缓存
  2. 经典C语言程序100例之十四
  3. x265与SVT-HEVC现已合二为一
  4. 【渝粤教育】国家开放大学2019年春季 2508学前儿童语言教育 参考试题
  5. 大数据之-Hadoop之HDFS_hadoop集群中的安全模式_操作案例---大数据之hadoop工作笔记0075
  6. 计算机视觉FPN: 特征金字塔网络
  7. inux安装vsftpd及配置详解
  8. Linux 之CentOS7使用firewalld打开关闭防火墙与端口
  9. android如何替换contact的来电铃声
  10. Pintos-斯坦福大学操作系统Project详解-Project1
  11. java自习_java自习重点及自测
  12. iPhone6/6S的适配
  13. Redis应用项目---抢红包功能(三)
  14. python爬虫80行代码拿下喜马拉雅有声书
  15. Windows8系统不能玩传奇的解习办法
  16. QEMU(1) - QOM
  17. px em pt单位区别
  18. 已知函数e ​x ​​ 可以展开为幂级数1+x+x ​2 ​​ /2!+x ​3 ​​ /3!+⋯+x ​k ​​ /k!+⋯。现给定一个实数x,要求利用此幂级数部分和求e ​x ​​ 的近似值,求和
  19. 杰理之download加key会报错(无效的key文本)的解决办法【篇】
  20. [转帖]μTorrent官方FAQ翻译+如何使用RSS在Mininova下载torrent

热门文章

  1. Editplus扩展程序的删除
  2. 【2020HBU天梯赛训练】7-11 打折
  3. Bambook程序达人赛报名公告
  4. 饿了么端智能本地生活领域探索与实践
  5. 分页存储的地址空间是一维的,分段存储的地址空间是二维的
  6. 【Linux】第七篇:进程间通信
  7. th和td标签的区别?
  8. [推荐]一款非常好的电子日记本:KindDiary 2.2.3
  9. ESP8266开发之旅 应用篇① 局域网应用 ——炫酷RGB彩灯
  10. Java实战-用Java mail实现Exchange发邮件给你喜欢的人