这几天邻近期末,感觉上了快一学期的编译原理的许多方面还是难以理解,今天早上就突然遇到了一道题,求短语,直接短语和句柄的题,突然才发现自己连这些词的定义都不清楚,于是仔细查了以下,下面分享出来:

短语

书上的定义如下: 

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

  • 1
  • 2

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

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

直接短语

书中的定义:

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

句柄

先来看一下书中的定义:

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

小练习

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

抽象语法树如下:

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

  • 短语: T*F, E+T*F

  • 直接短语:T*F

  • 句柄:T*F

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

这个比较简单,我们来个比较复杂的题目:

  • 1
  • 2
  • 3

此文法的抽象语法树为:

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

  • 短语:S,(T),b,Sd(T),Sd(T)db,(Sd(T)db)

  • 直接短语:S,(T),b

  • 句柄:S

转载自:https://blog.csdn.net/it_dream_er/article/details/53612006

编译原理中:短语,直接短语,句柄相关推荐

  1. 【复习资料】编译原理中:短语,直接短语,句柄

    http://blog.csdn.net/it_dream_er/article/details/53612006 短语:一个句型的语法树中任一子树叶结点所组成的符号串都是该句型的短语. 直接短语:如 ...

  2. 编译原理中LL(1)分析程序的设计---用c++程序语言实现

    一.前言 作为当代大学生的我,我喜极而泣,最后一个编译原理实验报告了,这次是一个提高性实验报告.肝完这个,编译原理,这门课,再也没有实验报告了,我再也不要担心我没有头发了.行了,废话不多说,我直接呈现 ...

  3. 编译原理中的first集,follow集和selec集的小解

    在看编译原理,对这些集合求法不是很明白,看了某个大神的博客,感觉懂了不少,现把自己的理解贴出来大家共享. 所有大写字母代表非终结符,小写字母代表终结符,省略号代表未知数目(可能为0)的不确定类型的文法 ...

  4. 编译原理中LR(0)项目集规范族的构造

    本文转载自:  http://www.cnblogs.com/lazycoding/archive/2012/05/12/2497065.html 此文略长.我也没想到这写起来这么多,但对构造过程绝对 ...

  5. 编译原理中LL(1)文法求FIRST集和FOLLOW集的方法

    一.求FIRST集 1.右部首个字符是终结符则加入左部字符的FIRST集中,比如对形如U->a-的产生式(其中a是终结符),把a收入到FIRST(U)中. 2.右部首个字符是非终结符, 若此非终 ...

  6. 编译原理中的NULLABLE集合

    定义 非终结符X属于NULLABLE集合,当且仅当: 基本:X → ε 归纳:X → Y1-Yn, 且Y1-Yn都是非终结符并且都属于NULLABLE集合 NULLABLE集合表示一个非终结符是否可以 ...

  7. 怎么求编译原理中的first集,follow集和selec集

    所有大写字母代表非终结符,小写字母代表终结符,省略号代表未知数目(可能为0)的不确定类型的文法符号. First集合: First集合顾名思义就是求一个文法符号串所可能推导出的符号串的第一个终结符的集 ...

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

    编译原理之 短语&直接短语&句柄 定义与区分 一.关于短语 二.关于直接短语 三.关于句柄 四.小练习 1.练习一 2.练习二 五.知识加强拓展 1.利用语法树寻找句型的短语.直接短语 ...

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

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

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

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

最新文章

  1. 2018年第九届蓝桥杯C/C++ A组国赛 —— 第二题:阅兵方阵
  2. 打印菱形星号组合C程序
  3. linux mint 安装java_Linux mint 安装步骤
  4. linux 让暂停的进程恢复,Linux 下进程的挂起和恢复命令
  5. STM32系列芯片名称定义
  6. Xcode 4.6.3 Bug - .m 文件不能正常打开,uitableveiwController
  7. 盘点12个Python数据可视化库,通吃任何领域
  8. 深入浅出SharePoint2010——请假系统无代码篇之工作流设计
  9. IE11离线安装总是提示“获取更新”的解决方法
  10. linux下nginx重启命令
  11. 深入探究:TIFF格式的影像如何转jpg (保持色彩不变)
  12. duxcms1.0 默认主题分析
  13. python编程输入名字配对情侣网名_输入名字制作情侣qq网名
  14. 【防诈骗】QQ账号安全检测工具-腾讯出品
  15. linux docker启动指定字符集,【字符集】解决docker 容器中中文乱码问题
  16. web前端开发常用的10个高端CSS UI开源框架
  17. proftpd 530 Login incorrect
  18. ActionEnglish Notes
  19. 反省读经教育理论的误区 ——关于十三岁之前理解的问题
  20. labview入门范例 哈哈

热门文章

  1. Xcode8上传app一直显示正在处理
  2. 面向对象的JavaScript-008-Function介绍
  3. Mercurial (hg)
  4. (转载)PHP环境搭建-记录
  5. iOS开发UIScrollView常见属性和方法
  6. 28. 正确理解由reverse_iterator的base()成员函数所产生的iterator的用法
  7. pdf照片显示正常打印时被翻转_明天开始打印准考证,你需要注意这些!
  8. java.lang.integer_java 中 关于java.lang.ArrayStoreException: java.lang.Integer异常,是什么原因?...
  9. 工程介绍好处费性质_中间人拿工程好处费是否违法
  10. python有哪几种类型转换方式_Python 中各种时间类型的转换