《编译原理》求短语,直接短语,句柄,素短语,最左素短语 - 例题解析
《编译原理》求短语,直接短语,句柄,素短语,最左素短语 - 例题解析
笔记
(一)明确概念:
名称 | 概念 |
---|---|
短语 | 定义: 若 S 为文法 G 的开始符号,αβδ 是该文法的一个句型,即 S ⇒* αβδ,且有 A ⇒+ β,则称 β 是句型 αβδ 相对于非终结符 A 的短语。语法树: 在语法树中表示所有分支结点对应子树,短语即子树叶子对应的符号。注: 子树包括语法树本身,及句型本身也可以称为短语。 |
直接短语 | 定义: 若 S ⇒* αβδ,且文法中包含产生式 A → β,则称 β 是句型 αβδ 相对于非终结符 A 的直接短语。语法树: 在语法树中表示为该短语只有上下相邻父子两代 |
句柄 | “可规约串”,句柄对应某个产生式的右部,是某个,但不是任意一个。作为一种规约对象,句柄表示最左直接短语。语法树: 在语法树上,则表示为最左边的只包含相邻父子节点的短语(最左直接短语) |
素短语 | 定义: 是指一个短语至少包含一个终结符,并且除它自身之外不再包含其他素短语 |
最左素短语 | 定义: 最左素短语就是句型最左边的素短语,是算符优先分析法的规约对象。语法树: 通过语法树分析时,要注意先判断是否为素短语,再找相对最左端的素短语。 |
例题1:求短语,直接短语,句柄
给定句型:
T*P↑(T*F)
给定文法:
G[T]:
T → T*F|F
F → F↑P|P
P → (T)|i
解析:
推导步骤为:
T ⇒ T*F
⇒ T*F↑P
⇒ T*P↑P
⇒ T*P↑(T)
⇒ T*P↑(T*F)
画出语法树为:
该语法树的 5 个子树及 5 个短语为:
求直接短语方法: 该句型的语法树有两颗直接子树(最左边的两颗子树),由这两颗直接子树的叶子结点组成的符号串(或者说只包含两层的子树叶子结点对应的),就是句型的两个直接短语,直接短语 P 和 T*F。
求句柄: 因为 P 相对 T*F,在语法树上的左侧,所以句柄是 P
最终结果:
类型 | 内容 |
---|---|
短语 5 个 | P,T*F,(T*F),P↑(T*F),T*P↑(T*F) |
直接短语 2 个 | P,T*F |
句柄 | P |
例题二:求素短语,最左素短语
给定句型:
FF↑*a*
给定文法:
G[T]:
T → T*F|F
F → F↑P|P
P → (T)|i
解析:
推导步骤为:
T ⇒ TF*
⇒ TF*F*
⇒ TF↑*\F*
⇒ TF↑*a*
画出语法树:
最终结果:
根据定义可以找出素短语有:
类型 | 内容 |
---|---|
素短语 2 个 | F↑,a |
最左素短语 | F↑ |
《编译原理》求短语,直接短语,句柄,素短语,最左素短语 - 例题解析相关推荐
- 编译原理——求短语、直接短语(简单短语)、素短语、句柄
先介绍一下短语.直接短语(简单短语).素短语.句柄怎么求:这个图是核心 然后通过一些例题,实战一下: 根据上面介绍的概念.求法,应用一下即可: 例题1 短语:注意对于每一个子树,找它最低端,最最下面的 ...
- 编译原理学习笔记:CFG的分析树(句型的短语、二义性文法、二义性文法的判定)
1 CFG的分析树 2 分析树是推导的图形化表示 3 (句型的)短语 4 二义性文法 5 二义性文法的判定
- 编译原理 求first集 follow集
FIrst集: FIRST集是一个文法符号串所可能推导出的符号串的第一个终结符的集合 First集合最终是对产生式右部的字符串而言的,但其关键是求出非终结符的First集合,由于终结符的First集合 ...
- 编译原理求FIRST集、FOLLOW集和SELECT集
所有大写字母代表非终结符,小写字母代表终结符,省略号代表未知数目(可能为0)的不确定类型的文法符号. First集合: First集合顾名思义就是求一个文法符号串所可能推导出的符号串的第一个终结符的集 ...
- 编译原理求最左推导和最右推导例题
一.[问题描述] 令文法G[N]为 G[N]:N→D IND D→0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 (1) G[N]的语言L(G)是什么? (2)给出句子01 ...
- 【编译原理】短语、直接短语、句柄、素短语、最左素短语概念辨析例题练习
概念 短语:某个句型中可以成功归约的子串(1-n个终结符) 直接短语/简单短语:可一步归约的短语(即若节点A下一步推出的均为叶子节点,则这些叶子节点构成的子串为一个直接短语) i1+i2 (√) i1 ...
- 编译原理之:短语,直接短语,句柄
由于我的编译原理课程不讲人话,在阅读<数据结构>和CSDN相关博文之后,总结编译原理语法分析中的三个词的定义: 1.短语,所有子树的末端节点行成的字符串. 2.直接短语,所有简单子树的末端 ...
- 【编译原理】-- 第二章(二)(短语、简单短语、句柄、文法二义性、语法树、例题)
目录 一.句型的分析 1.规范推导和规范归约 2.短语.简单短语和句柄 3.语法树 4.通过树来寻找短语.简单短语.句柄 二.文法的二义性 1.文法二义性的定义 2.文法二义性的消除 (1)定义规定或 ...
- 编译原理——短语、简单短语、句柄
给出文法1: 下列句子1可由文法1推导得到: 接着构造句子1的语法树: 接下来给出短语.简单短语.句柄的不严谨定义: 短语:一棵树及其子树包含的所有叶节点组成的符号串,上图的短语为 id1 id1*i ...
最新文章
- 初识软件体系结构(1-4课时)
- R,python(pandas)以及linux shell 常见命令对比
- u盘文件看得见却打不开_U盘中病毒,文件看得见,但是打不开,文件要怎么修复,求解答?...
- 浅析C#中构建多线程应用程序
- L1-069 胎压监测 (15 分)
- Second Highest Salary --leetCode
- quick time不可用是什么意思_农村谚语“不可不算,不可全算”是什么意思?
- 基于FPGA的车牌识别
- Kotlin中文开发者文档(一)
- 三思笔记之一步一步学ORACLE
- 全解电磁流量计功能和精度性能
- 每天晚上坚持1500个跳绳,两个月后,身体会有什么变化?
- 基于java的健身房管理系统的设计与实现
- php中COM函数的使用
- 将一个自然数拆分为N个自然数
- Java正则表达式实现港、澳、台身份证验证
- AI+社区智能管理,赋能智慧城市人情共「智」
- 4 计算机设备的折旧年限不低于,汇算清缴十大注意事项四:如何正确适用固定资产加速折旧政策...
- Java的开发环境、测试环境、生产环境、UAT环境、仿真环境
- SCT1270,SCT1271,12.6V, 7A, 全集成高效升压变换器