Ⅰ 编译原理什么是素短语
编译原理中,素短语是至少含义一个终结符,并且自身不包含任何更小素短语的一种短语。
素短语是一种特殊的短语,它是一个递归的定义,至少含有一个终结符,并且除它自身之外不再含任何更小的素短语,所谓最左素短语就是处于句型最左边的素短语的短语。
一个算符优先文法G的任何句型的最左素短语是满足以下条件的最左子串NaNb…NcNdN(N是非终结符,a,b,c,d是终结符)。例如:句型T+T*F+id,T*F是最左素短语,id是素短语。
(1)编译原理中的短语怎么看扩展阅读:
通过语法树可以得知素短语:
1、每个句型对应一棵语法树
2、每棵语法树的叶子结点从左到右排列构成一个句型
3、每棵语法树的子树的叶子结点从左到右排列构成一个短语
4、每棵语法树的简单子树(只有父子两层结点)的叶子结点从左到右排列构成一个简单(直接)短语。
5、素短语是至少包含一个终结符的短语,但它不能包含其它素短语。
Ⅱ 编译原理文法问题,急急急
第一题
S->AB
A->aA'b
A'->aA'b|ε
B->B'
B'->dB'|ε
----------------------
第二题
S->aS'b
S'->aS'b|D
D->dD|ε
----------------------
第三题
最左推导的话,我认为要先消除左递归才行(把左递归转成右递归),消除之后:
N->DN'
N'->DN'|ε
D->0|1|2|...|9
最左推导为 N->DN'->2N'->2DN'->25N'->25DN'->258N'->258
规范推导(最右推导)为N->ND->N8->ND8->N58->D58->258
----------------------
第四题
构造一下语法树就知道了。直接短语是深度为2的节点(根节点是深度0)。短语是深度为2的节点代入深度为1的产生式中。句柄是所有直接短语中最左的那个。
1.baaa
>>>
_________S
_______/___\
______A_____B
_____/__\____|
____A___a___a
___/__\
__b___B
_______|
______a
直接短语为 Aa、a
短语为 Aaa
句柄为 Aa
2.bBaa
>>>
_________S
_______/___\
______A_____B
_____/__\____|
____A___a___a
___/__\
__b___B
直接短语为 Aa、a
短语为 Aaa
句柄为 Aa
Ⅲ 编译原理的终结符和非终结符如何理解
一、非终结符:
1、非终结符可以再分成更细的东西。
2、不是终结符的都是非终结符。非终结符可理解为一个可拆分元素,而终结符是不可拆分的最小元素。终结符号就是语言中用到的基本元素,名词、动词、形容词、助词等等基本语言单位。
二、终结符:
1、终结符直接就代表一个意思,比如关键字if就不能再分成i和f了。
2、通俗的说就是不能单独出现在推导式左边的符号,也就是说终结符不能再进行推导。非终结符则是"语法"中用到的元素,除非谈论"语法",一般交谈语言中并不会用到非终结符。比如:主语、短语、词组、句子。
(3)编译原理中的短语怎么看扩展阅读:
终结符和非终结符在计算机科学和语言学的领域是用来指定推导规则的元素。在某个形式语法之中,终结符和非终结符是两个不交的集合。
从形式语言中定义看,终结符(T)就是不可再分的字符或串。而非终结符(N)是一个递归形式的定义:由终结符和至少一个非终结符号组成的串。
如果编译过程中发现源程序有错误,编译程序应报告错误的性质和错误的发生的地点,并且将错误所造成的影响限制在尽可能小的范围内,使得源程序的其余部分能继续被编译下去,有些编译程序还能自动纠正错误,这些工作由错误处理程序完成。
需要注意的是,一般上编译器只做语法检查和最简单的语义检查,而不检查程序的逻辑。
网络-终结符
网络-编译
Ⅳ 编译原理中的短语、直接短语、句柄
就是说,对一棵分析树从上到下,从左到右把所有的直接短语写出来,在所有的直接短语的最前面(也就是最左边)的那个就是句柄啦。
希望帮到你理解这个意思。
Ⅳ 一个编译原理问题
首先写出指定句型的规范推导:
S→(L)→(L,S)→(L,(L))→(L,(S))→(L,(a))→(S,(a))
然后画出分析树如下图
根据分析树的叶子结点可以找出该句型的所有短语:
aS(a)S,(a)(S,(a))
直接短语,就是经过一次非终结符替换得到的短语:
aS没了
句柄就是最左直接短语,要进行规约的部分,根据分析树我们找到最左直接短语为:
S
Ⅵ 编译原理有关语法的题
短语:E+F*(E+i),F*(E+i),(E+i),E+i,i
直接短语:i(能直接推出来的)
句柄:i(最左直接短语)
素短语:i(并且至少含有一个终结符并除自身之外不含任何更小的素短语)
这些你根据语法树看,就比较好找了啊~
语法树如图:
Ⅶ 谁能够解释下编译原理中什么是FIRSTVT,和LASTVT,尽量浅显易懂点谢谢
Firstvt和Lastvt是为了画算符优先关系表的(就是表里面填优先大于小于等于的那个)。
然后要注意他们可都是终结符的集合。
Firstvt
找Firstvt的三条规则:如果要找A的Firstvt,A的候选式中出现:
A->a.......,即以终结符开头,该终结符入Firstvt
A->B.......,即以非终结符开头,该非终结符的Firstvt入A的Firstvt
A->Ba.....,即先以非终结符开头,紧跟终结符,则终结符入Firstvt
Lastvt
找Lastvt的三条规则:如果要找A的Lastvt,A的候选式中出现:
A->.......a,即以终结符结尾,该终结符入Lastvt
A->.......B,即以非终结符结尾,该非终结符的Lastvt入A的Lastvt
A->.....aB,即先以非终结符结尾,前面是终结符,则终结符入Firstvt
Ⅷ 编译原理,设文法G[E]如下,句型T+T * F+a的素短语是__
试给出句型T-T/F+a和T+T*F-F↑a的短语、句柄、素短语:
句型1:短语TT/F+a, T-T/F, T, T/F, a
句型T
素短语: T/F,a
句型2:短语E+T*F_F↑a, E+T*F, T*F,F↑a, a
句型T*F
素短语: T*F,a
(8)编译原理中的短语怎么看扩展阅读
文法:以有穷的集合描述无穷的计划的工具。
字母表:元素的非空有穷集合,其中的元素称为符号,因此也叫符号集。
符号串:由字母表中的元素组成的任何有穷序列,串中的元素个数叫做符号串的长度,空符号串ε,长度为0。
符号串的运算:
连接-符号串x = ab,y=cd, xy = abcd
方幂-z=xn,当n = 0, z = ε,当 n = 2, z = xx
集合的闭包-∑* = ∑0 ∪∑1 ∪∑2 ∪…∪∑n
∑+ 为正闭包 = ∑1 ∪∑2 ∪…∪∑n
Ⅸ 编译原理中,素短语是个什么东东
素短语是一个短语,它至少含有一个终结符,而且除他之外不含有其他素短语。
短语:一个句型的语法树中任一子树叶节点所组成的符号串都是该句型的短语。
Ⅹ 编译原理的疑问
设文法G的开始符号为S,abc是G的一个句型。
如果有句型S *=>aAc,且A +=>b,则称b是句型abc相对于非终结符A的短语。
假如A =>b,则称b是句型abc相对于规则A=>b的直接短语。
句柄就是句型的最左直接短语。
假如一个短语,有且只含有一个非终结符,则称之为素短语;(语法树)最左边的素短语为最左素短语。
形式语言里,规范推导是最右开始,则归约是最左开始。
短语的特点是由非终结符而来。在算符优先分析里,短语是进行归约的方向。它和常见的中文、英文里所说的短语概念有相似,也有不同。