邢老师:13068761630  13333709510(微信同号)  张老师
联大  青书学堂  文才  和学  江开  华夏大地  现代兴业  安徽教育在线  超星  中国大学mooc  学起plus弘成  广东开放大学  国家开放大学  上海开放大学  含弘慕课  中国医科大学 

成人高考指南

提升学历的理由:
升职加薪、积分落户、考研、公务员考试、子女入学、出国留学


成人高考报名入口


当前位置: 首页 > 江开系统 > 湖南大学> 湖南大学-计算机科学与技术
 

输入试题:
显示江开系统湖南大学-计算机科学与技术所有答案
2.已知文法 AaAd|aAb|ε 分别构造LR(0)分析表和SLR(1)分析,并判断该文法是否是LR(0)文法,是否SLR(1)文法。
答案是:解:增加一个非终结符S/后,产生原文法的增广文法有: S/A AaAd|aAb|ε 下面构造它的LR(0)项目集规范族为: a b d # A I0: S/•A A•aAd A•aAb A• I2: Aa•Ad Aa•Ab A•aAd A•aAb A• I1: S/A• I1: S/A• acc I2: Aa•Ad Aa•Ab A•aAd A•aAb A• I2 I3: AaA•d AaA•b I3: AaA•d AaA•b I4: AaAb• I5: AaAd• I4: AaAb• I5: AaAd• 从上表可看出,状态I0和I2存在移进-归约冲突,该文法不是LR(0)文法。 对于I0来说有 FOLLOW(A)∩{a}={b,d,#}∩{a}=Φ 所以在I0状态下面临输入符号为a时移进,为b,d,#时归约,为其他时报错。 对于I2来说有也有与I0完全相同的结论。 这就是说,以上的移进-归约冲突是可以解决的,因此该文法是SLR(1)文法。其他SLR(1)分析表为: 下面构造它的SLR(1)项目集规范族为: 文法的SLR(1)分析表 状态 ACTION GOTO a b d # A 0 S2 r1 r2 r3 1 1 acc 2 S2 r1 r2 r3 3 3 S4 S5 4 r2 r2 r2 r2 5 r1 r1 r1 r1
对文法G[S] Sa|∧|(T) TT,S|S (1)对文法G进行改写消去左递归,然后对每个非终结符写出不带回溯的递归子程序。 (2)经改写后的文法是否是LL(1)的?给出它的预测分析表。
答案是:解:(1)由于有TT,S的产生式,所以消除该产生式的左递归,有新的文法G/[S]: Sa|∧|(T) TSU U,SU|ε (2)判断文法G/[S]是否为LL(1)文法。 各非终结符的FIRST集合如下: FIRST(S)={a,∧,(} FIRST(T)=FIRST(S)={a,∧,(} FIRST(U)={,,ε} 各非终结符的FOLLOW集合如下: FOLLOW(S)={#} ∪ FIRST(U) ∪ FOLLOW(T) ∪ FOLLOW(U)={#,,,)} FOLLOW(T)={)} FOLLOW(U)=FOLLOW(T)={)} 每个产生式的SELECT集合如下: SELECT(Sa)={a} SELECT(S∧)={∧} SELECT(S(T))={(} SELECT(TSU)=FIRST(S)={a,∧,(} SELECT(U,SU)={,} SELECT(Uε)=FOLLOW(U)={)} 可见,相同左部产生式的SELECT集的交集均为空,所以文法G/[S]是LL(1)文法。 文法G/[S]的预测分析表如下: a ∧ ( ) , # S a ∧ (T) T SU SU SU U ε ,SU
程序的执行方式主要有哪几种?请各举1例。
答案是:答:解释执行,如:Basic; 编译执行,如:C; 混合型,如:JAVA。
将下面的算术表达式翻译成四元式。
答案是:2+(3+(4+5)) (+,4,5,t1) (+,3,t1,t2) (+,2,t2,t3)
已知表达式文法G(E): E → E+T|T T → T*F | F F → (E) | i 试设计属性文法计算表达式的值。(设值属性为val,i在词法分析的值存在其lexval属性中)
答案是:解: 语法规则 语义规则 E → E1+T E.val=E1.val+T.val E → T E.val=T.val T → T1*F T.val=T1.val+F.val T → F T.val=F.val F → (E) F.val=E.val F → i F.val=i.lexval
编译程序的工作一般分为五个阶段:
答案是:(1)词法分析:对源程序字符流进行扫描和分解,识别出一个个单词符号。 (2)语法分析:在词法分析的基础上,根据语言的语法规则把单词符号串分解成各类语法单位。 (3)语义分析和中间代码产生:检查源程序的语义错误(如:变量是否定义、类型是否正确等),并收集代码生成阶段要用到的类型信息。对各类不同语法范畴按语言的语义进行初步翻译。 (4)优化:对于前阶段产生的中间代码进行加工变换,以期在最后阶段产生更高效的目标代码。 (5)目标代码产生:把中间代码变换成特定机器上的目标代码。
标识符的正则表达式为 。
答案是:letter(letter|digit)*
表达式-a+b*(c-d)对应的逆波兰式是 。
答案是:a-bcd*+
写出你所了解的两种中间语言表达: 和 。
答案是:三地址码
是编程语言结构的任意特性。其典型例子有:变量的数据类型和表达式的值。
答案是:属性
LR(0)文法不一定是SLR(1)文法。
答案是:对
. LL(1)文法都不是二义性的。
答案是:对
LEX是用来生成词法分析程序的程序。
答案是:对
可识别语言的一个上下文无关文法G(S):S->aSc|ε
答案是:错
简单算术表达式文法中值是继承属性。
答案是:错
连接编译器的前端和后端的接口是: ( ) A.TINY语言 B. 中间语言 C.上下文无关语言 D. 中间语言
答案是:B
高级语言编译程序常用的语法分析方法中,递归下降分析法属于_____ 分析方法。 可选项有; A. 自左至右 B.自上而下 C.自下而上 D.自右向左
答案是:B
正则式的“|”读作______。 A.并且 B或者 C.连接 D.闭包 8、E->TE. E.->+TE.|ε T->FT. T.->*FT.|ε F-> (E)|id FOLLOW(F)=______,FI
答案是:B
.在状态转换图中,结点代表____,用圆圈表示。 A.输入缓冲区 B.向前搜索 C.状态 D.字符串
答案是:C
一个句型的最左直接短语称为该句型的_______。 A.句型 B.短语 C.简单短语 D.句柄
答案是:D
设有文法G[S]:S::=S*S|S+S|(S)|a,该文法_______二义性文法。 A.是 B.不是 C.无法判断 D.可能
答案是:A
字母表是 {0, 1},写出以01 结尾的所有串的正规式是( )。 A. (0|1)*01 B.0*1*01 C.1*0*01 D. (01)*
答案是:A
一个语言的文法是_____。 A.惟一的 B.不惟一的 C.个数有限的
答案是:B
在使用高级语言编程时,首先可通过编译程序发现源程序的全部______错误和部分语义错误。 A.语法 B.语义 C. 语用 D.运行
答案是:A
规范归约是最 归约。
答案是:左
x+y>3可依次翻译成四元式( )和( )。
答案是:(+, x, y, t1) (>, t1, 3, t2)
. 自下而上语法分析方法的基本思想是:从 出发,不断进行 ,最终得到文法的开始符号。
答案是:输入串 归约
文法S->ibtSeS|ibtS|a不是二义性文法。
答案是:错
三地址码和DAG都是中间代码。
答案是:对
编译器所生成的目标代码都是直接可以在硬件上运行的机器语言。
答案是:错
在带进制数文法中,值属性val是继承属性。
答案是:错
可以描述一个语言的文法不是唯一的。
答案是:对
LL(1)分析中“移进-归约”中使用( )完成分析。 A.哈希表 B. 队列 C. 线性表 D. 显式栈
答案是:D
以下四个LR(0)项目中( )是一个移进项目。(A,B,S’是非终结符,S’是文法的开始符号,b是终结符) A. S’α• B. Aα• C. Aα•bβ D. Aα•Bβ
答案是:C
表达式-a+b*(-c+d)的逆波兰式是( )。 A. ab+-cd+-* B. a-b+c-d*+ C.a-b+c-d+* D.a-bc-d+*+
答案是:D
把可重定位代码变成可执行代码的工作是由( )完成的。 A. 编译器 B. 预处理器 C.装配/连接器 D. 汇编器
答案是:C
综合属性的依赖关系在语法树表现为( )。 A. 从父节点向子节点 B. 从子节点向父节点 C.从左兄弟指向右兄弟 D. 从右兄弟指向左兄弟
答案是:B
以下说法中正确的是( )。 A.不是每个正则表达式e都有等价的NFA M,满足L(e)= L(M)。 B.对于任何一个NFA M,都存在一个DFA M’,满足L(M)= L(M’)。 C.DFA的弧上标记只含输入字母表中的
答案是:B
. LR(0)文法的充要条件是( )。 A. 对应的LR(0)项目DFA中每个项目都没有移进-归约冲突; B. 对应的LR(0)项目DFA中每个项目都没有归约-归约冲突; C.A和B D.都不是
答案是:C
下面文法生成的语言是:( ) stmt-seq → stmt ; s t m t - s e q | s t m t stmt → s A.L(G) = { s, s;s, s;s;s, ...} B.L(G
答案是:A
文法AaB Bb属于乔姆斯基层次的( )文法。 A.上下文有关 B. 上下文无关 C.正则 D.0型
答案是:C
编译器的( )阶段将记号流转换成语法树。 A. 语法分析 B. 语义分析 C. 代码生成 D. 词法分析
答案是:A
试将布尔表达式a
答案是:100: if a
.令文法G为: ND| ND D0|1|…|9 (1) 该文法的语言是什么?(2) 给出句子456的最左推导。
答案是:答:(1)该文法生成的语言是正整数。 (2)N=>ND=>NDD=>DDD=>4DD=>45D=>456
(10分)已知文法 E→(L)|a L→L,E|E 1)构造该文法的LR(0)项目DFA; 2)构造其SLR(1)分析表,并判断该文法是否SLR(1)文法。
答案是:解: (1)为这个文法构造LR(0)项目的DFA. 其扩充文法为: E’→E E→(L)|a L→L,E|E 改文法LR(0)项的DFA是: (2)构造SLR(1)分析表 First(E’)={ (,a ); Follow(E’)={ $ }; First(E)={ (,a ); Follow(E)={ $,),’,’ }; First(L)={ (,a ); Follow(L)={ ),’,’ }; 则SLR(1)分析表如下: 状态 输入 GOTO ( ) , a $ E L 0 S2 S4 1 1 接受 2 S2 S4 8 3 3 S5 S6 4 R(E→a) R(E→a) R(E→a) 5 R(E→(L)) R(E→(L)) R(E→(L)) 6 S2 S4 7 7 R(L→L,E) R(L→L,E) 8 R(L→E) R(L→E) 由于每个表项最多只有一个动作,所以该文法是SLR(1)文法。
(1)画出字符串abc的相关依赖图; (2)假设S.u的初始值为5,属性计算完成后,S.v的值为多少?
答案是:答:a .语法树与相关图为: 属性等式的序列为:①③④①②① b .等式完成后,S.v的值为18
1.(10分)计算文法G(E)的每个非终结符的FIRST和FOLLOW集合,并判断该文法是否是LL(1)的,请说明理由。
答案是:G(E): E → E+T|T T → T*F | F F → (E) | i FIRST(E)= FIRST(T) = FIRST(F)={(,i} FOLLOW(E)={#,+, )} FOLLOW(T)={#,+, ),*} FOLLOW(F)={#,+, ),*} 因为FIRST(E+T)∩ FIRST(E+T)={ (,i }≠Φ,所以该文法不是LL(1)文法。
1.简述前端和后端,并说明为什么要区分前端和后端。
答案是:答:编译前端:与源语言有关,如词法分析,语法分析,语义分析与中间代码产生,与机器无关的优化。 编译后端:与目标机有关,与目标机有关的优化,目标代码产生。 区分前端和后端的目的是为了减少对内存容量的要求,使程序逻辑结构清晰; 优化更充分,有利于移植。
表达式a-b*(c+d)对应的逆波兰式是 。
答案是:abcd+*-
程序设计语言中名字的作用域一般遵循 的原则,即若有多个同名定义,该名字的引用应对应于与其引用最近的那个声明。
答案是:最近嵌套
自上而下语法分析方法的基本思想是:从文法的 出发,不断进行 ,最终得到输入串。
答案是:开始符号, 推导
若文法G的某个句子存在两棵以上的语法树,则称该文法是 文法。
答案是:二义性
存在这样的语言,它们能被确定的有穷自动机识别,但不能用正则表达式表示。 ( )
答案是:错
三元式和四元式都是三地址码的实现形式。
答案是:对
在构造递归下降伪代码时,将非终结符A翻译为一个匹配过程match(A)
答案是:错
在类型声明文法中,类型属性type是继承属性。
答案是:对
一个LR(0)文法一定是SLR(1)文法。
答案是:对
文法A->aAb|ab生成的语言是( )。 A. {ab} B.{aAb} C. {anbn|n≥1} D.{anbn|n≥0}
答案是:C
编译程序中的语义分析器接受以( )为单位的输入,并产生信息供以后各阶段使用。 A. 语法树 B.子程序 C.单词 D.语句
答案是:A
正则式的“*”读作( )。 A. 并且 B.连接 C.正则闭包 D.闭包
答案是:D
目前为: 1/5 页  首页   上页  下页 尾页

提升学历-成人高考报名入口    提升学历-成人高考报名时间     成人高考常见问题