Ⅰ 编译原理假定要被代换的最左非终结符号是V,且有n条规则:V→A1|A2|…|An,那么如何确定用哪个右部去替代V
设V为非终结符,且V→A1|A2 ,当V出现在下推栈的栈顶,且输入符号为a时:
1. 若a属于First(A1)而a不属于First(A2),则V→A1
2. 若a不属于First(A1)而a属于First(A2),则V→A2
3. 若a不属于First(A1)且a不属于First(A2), 则表示输入有错
4. 若a属于First(A1)且a属于First(A2),,则表示终结首符集相交,需改写文法,进行公因子提取
同理可推n条规则的情况…恩 还有First(A1)={epsilon}的情况你找本书看看预测分析表的构造方法就知道了~编译原理画语法树?这种问题我一般用表解决,树还真不会画- -本人新手,第一次在回答题,求采纳求赏分~~~~^_^
Ⅱ 编译原理中 文法 文法G定义为四元组(Vn ,Vt,P,S)这4个是什么意思 另外 终结符和非终结符是什么意思
文法G是一个四元式(Vt,Vn,S,P)
其中Vt是一个非空有限集,它的每个元素称为终结符号
Vn是一个非空有限集,它的每个元素称为非终结符号(Vt和Vn的交集为空)
S是一个非终结符号,称为开始符号
P是一个产生式集合(有限),每个产生式的形式是P-->a
开始S必须在某个产生式的左部出现一次
终结符指组成语言的基本符号(如基本字、标识符、常数、算符、界符)
非终结符号(也称语法变量)表示一定符号串的集合。
你看到小写字母一般是终结符,大写字母肯定是非终结符
不明白可以联系。
Ⅲ 编译原理问题。非终结符的FOLLOW集里面为什么要放个#号
#号是分析过程中引入的界符
用来表示开始和结束的边界用
对于一个文法G(S)来说
求公理S的FOLLOW集的时候,由于没有一个产生式的右部包含S
所以我们规定S的FOLLOW集是{#}
就是一个句型的结束符
#句型#
Ⅳ 编译原理 终结符集合 包不包括空 ε 为什么
除了非终结符之外的符号都是终结符,“|”符号除外,只有这个啥都不是
Ⅳ 编译原理中终结符具有什么属性,非终结符具有什么属性
终结符,通俗的说就是不能单独出现在推导式左边的符号,也就是说终结符不能再进行 推导。
不是终结符的都是非终结符。非终结符可理解为一个可拆分元素,而终结符是不可拆 分的最小元素。
Ⅵ 急求!怎么求编译原理的FOLLOW集合在线等~
follow集合是针对非终结符而言的;follow(U)所表达的是句型中非终结符U的所有可能的后随终结符号的集合,特别注意一点:“#”是识别符号的后随附。
直接收取:形如“……Ua”的组合,直接把啊收入到follow(U)中
直接收取:形如“……UP……”的组合,(P是非终态符);把firth(P)除去ε直接收入到follow(U)中。
反复传递:形如“P-……U”的产生式,
follow(P)的全部内容传递到follow(U)中,或者说是P-……UB且first(B)包含ε,则把first(B)除去ε直接收入到follow(U)中,同时吧follow(P)的全部内容传送到follow(U)中...
Ⅶ 编译原理里产生式中符号带括号是什么意思
就是 字符本身 意思是F产生( E ) 或者 i 比如If语句的开头 就是 带括号的 必须是 if(表达式)这样的形式 丢了任何即括号就是其 终结符 “(” 和 “)”.
Ⅷ 请问编译原理中的终结符和非终结符是什么意思
非终结符还要继续展开,可以包含终结符和非终结符具体的要看编译原理,不是一句两句说得清的
Ⅸ 编译原理的终结符和非终结符如何理解
一、非终结符:
1、非终结符可以再分成更细的东西。
2、不是终结符的都是非终结符。非终结符可理解为一个可拆分元素,而终结符是不可拆分的最小元素。终结符号就是语言中用到的基本元素,名词、动词、形容词、助词等等基本语言单位。
二、终结符:
1、终结符直接就代表一个意思,比如关键字if就不能再分成i和f了。
2、通俗的说就是不能单独出现在推导式左边的符号,也就是说终结符不能再进行推导。非终结符则是"语法"中用到的元素,除非谈论"语法",一般交谈语言中并不会用到非终结符。比如:主语、短语、词组、句子。
(9)编译原理三种终结符号集扩展阅读:
终结符和非终结符在计算机科学和语言学的领域是用来指定推导规则的元素。在某个形式语法之中,终结符和非终结符是两个不交的集合。
从形式语言中定义看,终结符(T)就是不可再分的字符或串。而非终结符(N)是一个递归形式的定义:由终结符和至少一个非终结符号组成的串。
如果编译过程中发现源程序有错误,编译程序应报告错误的性质和错误的发生的地点,并且将错误所造成的影响限制在尽可能小的范围内,使得源程序的其余部分能继续被编译下去,有些编译程序还能自动纠正错误,这些工作由错误处理程序完成。
需要注意的是,一般上编译器只做语法检查和最简单的语义检查,而不检查程序的逻辑。
网络-终结符
网络-编译
Ⅹ 编译原理这个符号表示什么 如图~~~~
剪头上加一个星号:S-*->aPb
表示从S可以推出含有非终结符P的形如aPb的句型。
剪头上加一个加号:S-+->a
表示从S可以推出终结符a。