编译原理(山东联盟-山东财经大学)智慧树知到期末考试答案章节答案2024年山东财经大学_第1页
编译原理(山东联盟-山东财经大学)智慧树知到期末考试答案章节答案2024年山东财经大学_第2页
编译原理(山东联盟-山东财经大学)智慧树知到期末考试答案章节答案2024年山东财经大学_第3页
编译原理(山东联盟-山东财经大学)智慧树知到期末考试答案章节答案2024年山东财经大学_第4页
编译原理(山东联盟-山东财经大学)智慧树知到期末考试答案章节答案2024年山东财经大学_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

编译原理(山东联盟-山东财经大学)智慧树知到期末考试答案+章节答案2024年山东财经大学已知文法G:({A,B,C},{a,b,c},P,S),其中:P为①S→Ac|aB②A→ab③B→bc,推导abc时,发现该文法是二义的。

答案:对和翻译模式的语义计算相比,基于属性文法的语义计算更适合在语法分析时进行语义翻译。

答案:错正规式和有穷自动机是等价的,所以二者可以互相转换。()

答案:对LR文法中的R表示最右推导。

答案:错直接短语一定是句柄。

答案:错字母表Σ的正闭包Σ+一定包含空串ε。

答案:错ε是所有字母表Σ上的一个正规式。

答案:对由于目标代码在编译时可以确定大小,所以放在静态存储区。

答案:对某属性文法中,为产生式A→A+a关联的语义计算可以是{A.val:=A.val+a}。

答案:错作为脚本语言,Python语言编写的源程序,每次都要边解释边执行。

答案:对LR(1)分析器是LR(0)分析器的优化,功能更强,执行效率更高。

答案:错已知文法G(S)如下:S→aSb|aS对该文法正确描述的有()

答案:因为出现左公因子,所以不是LL(1)文法;该文法的等价变换是G(S)如下:S→aSAA→b|ε5类单词中的标识符是指变量。

答案:错符号串aab的前缀包括()

答案:aa;ε;aDFA和NFA的不同之处是()

答案:DFA的一个状态发出的有向弧只有一个,而NFA的一个状态发出的有向弧可有多个下列语言编写的程序能被机器直接执行的是()。

答案:机器语言下列错误属于静态语义错误的是()

答案:类型不匹配下述()不是将词法分析作为单独一遍的好处

答案:编写程序代码更简单已知文法G(S)如下:S→aAaB|bAbBA→S|dbB→bB|a若用递归下降法实现语法分析,需要编写()段递归子程序。

答案:3编译程序检查、处理的源程序中的错误具体是指(

)。

答案:包括其他三项描述的错误形如:x:=yopz,此处的op是指二元算术运算符,不包括逻辑运算符。

答案:错LR(1)的项目集,项目的后面要标注向前搜索符号。

答案:对任何一个不确定的有穷自动机NFA一定能找到和它等价的一个DFA。

答案:对符号串001的化简结果是1,所以001和1是相同的符号串。

答案:错只有LL(1)文法才能用确定的自顶向下语法分析。

答案:对已知文法G:({A,B,C},{a,b,c},P,S),其中:P为①S→Ac|aB②A→ab③B→bc,可以生成两棵推导abc的语法树。

答案:对已知文法G(S)如下:S→aAaB|bAbBA→S|dbB→bB|aSELECT(B→bB)∩SELECT(B→a)的结果是Ø。

答案:对目标代码生成时,无需考虑目标计算机的系统结构

答案:错文法描述的语言是符合该文法的一切句子的集合。

答案:对所有LR分析器的总控程序都一样,只是LR分析表不同。

答案:对空集是字母表上的正规式。

答案:对一个确定的有穷自动机有且只有一个终态。

答案:错已知文法G(S)的两个产生式如下:M→K|bLMK→dML|ε,First(M)集合中的元素有()

答案:d;b;ε逆波兰式只能表示表达式的中间代码形式。

答案:错经编译得到的目标程序中不可能出现()。

答案:逆波兰式指令;三地址码指令编译器在编译的各个阶段都需要出错管理程序。

答案:错某属性文法中,为产生式A→Aa关联的语义计算可以是{A.n:=A1.n+1},下列描述正确的是()。

答案:综合属性.n,自底向上语法分析是进行语义计算在自顶向下语法分析中,要求文法满足()

答案:没有回溯字母表Σ的元素有3个,Σ3的元素有()个。

答案:27对于下面的程序:…procedureP(X,Y,Z);begin

Y:=Y+1;

Z:=Z+X;endP;begin

A:=2;

B:=3;

P(A+B,A,A);

printAend若参数传递的方法为传地址,程序执行时所输出的A是()

答案:8已知文法:G(E):E→T|E+TT→F|T*FF→i若用该文法最左推导i1+i2*i3,E⇒E+T之后推导应选用的产生式是()。

答案:E→T所有编译程序都有目标代码生成阶段

答案:对DAG图不仅可以表示中间代码,还可以进行代码优化。

答案:对已知文法G:({A,B,C},{a,b,c},P,S),其中:P为①S→Ac|aB②A→ab③B→bc,推导abc时,可以选用的第一个产生式是S→aB。()

答案:对DAG是有向无环图,利用DAG可实现局部优化

答案:对LL(1)文法的实现有两种方法,递归下降法和预测分析法。

答案:对符号表的内容是在词法分析时填入,并在以后各个阶段得到使用。

答案:对自底向上语法制导的语义分析时,栈包括3个,分别是状态栈、符号栈、语义栈。

答案:对赋值语句x:=x+5的四元式描述是(:=x5x)。

答案:错词法分析输出的终结符号串。

答案:错编译程序的前端部分是和目标机器无关的分析部分。

答案:对句柄一定是短语。

答案:对只有有综合属性的文法是S-属性文法。

答案:对LR(0)的项目集中不会出现项目间的移进、归约的冲突。

答案:对目标代码生成时,为了提高效率,应考虑如何充分利用计算机的寄存器的问题

答案:对在DAG图中,每个节点对应一个运算符。

答案:对控制流分析的主要任务是分析程序中的控制流程,找出其中的循环结构部分。

答案:对正规文法和有穷自动机是等价的,所以二者可以互相转换。()

答案:对语法分析的任务是将输入的单词序列转换成各种语法短语。

答案:对既有继承属性又有综合属性的文法是S-属性文法。

答案:错后缀式表示法可以不用括号,因为只要知道每个算符的目数,就能对它进行无歧义的分解计算。

答案:对目标代码生成中,变量的活跃信息是必须要考虑的,否则无法生成正确的目标代码

答案:错为了提高代码优化和移植,语义计算的结果是以中间代码的形式表示。

答案:对二义性文法会造成符号串推导的不确定性,可以通过有限次递归的方法证明一个文法是二义的。

答案:错三元式和四元式都属于三地址码。

答案:对一般来说,符号表中的信息可以视为两大栏:名字栏和信息栏

答案:对一个程序设计语言只能提供一种参数传递机制。

答案:错一个目标程序运行所需的存储空间包括()。

答案:存放目标代码的空间;存放程序运行的连接数据所需单元;存放程序运行的控制数据所需单元;存放数据项目的空间下列选项是符号串abc前缀的是()。

答案:a;ε二义性文法可以通过递归证明的方式,在有限步骤内推导出来。()

答案:错代码生成阶段要考虑的问题包括()。

答案:存储管理;计算顺序;寄存器分配;指令选择设有基本块如下:T1:=3T2:=A*BT3:=9+T1M:=A*BT4:=C-DL:=T3*T4T2:=C+DN:=T2假设L、M和N是出基本块后的活跃变量,对于上述程序可以采取的局部优化措施有()

答案:合并已知量;删除无用赋值字母表Σ={0,1},字母表Σ*是由0,1组成的符号串构成。

答案:错静态语义分析的任务最主要是检查程序结构(控制结构和数据结构)的一致性和完整性。

答案:对栈和堆都是动态存储的形式,具体到某种程序设计语言,运行前要规定二者所占动态存储区的大小。

答案:错控制流分析是的基本块的入口语句可以是()。

答案:程序的第一条语句;任何能跳转到的语句;紧跟在分支结构和循环结构后面的语句词法分析器的输出包括单词的()。

答案:种别(也称:类别);自身值LR分析程序最核心部分是()。

答案:分析表LL(1)文法中的第二个L表示(

答案:从左到右推导编译过程只有一“遍”的主要目的是()。

答案:提高程序的执行效率已知文法G(S)如下:S→aAaB|bAbBA→S|dbB→bB|aSELECT(A→S)的结果是()。

答案:{a,b}将产生式B→Bb|d消除左递归的方法是()

答案:B→dB'B'→ε|bB'将正规式a(a|b)*转换成相应的正规文法,正确的是()。

答案:S→aAA→aA|bA|ε对于一个无二义性文法,下列表述最准确的是()。

答案:对于一个符号串只存在一个最左推导和一个最右推导词法分析器输出的5类单词不包括下列选项中的()。

答案:注释LL(1)文法中的1表示(

)。

答案:从左到右扫描输入符号串已知文法:G(E):E→T|E+TT→F|T*FF→i该文法的一个句子i1+i2*i3中,短语的数量是()。

答案:5如果一个文法G是无二义性文法,则低于任一个句子x∈L(G),该句子()

答案:仅存在一个最左推导和一个最右推导语法树的构成方法有()种。

答案:2有关基本归纳变量的作用,错误的是

答案:记录循环的结果已知文法G(S)的部分产生式如下:M→K|bLML→eHfK→dML|ε,Follow(M)集合是()

答案:{e,#}已知文法:G(E):E→T|E+TT→F|T*FF→i该文法的一个句子i1+i2*i3中,直接短语的数量是()。

答案:3已知文法G(S)的部分产生式如下:M→K|bLML→eHfK→dML|ε,Select(M→K)集合是()

答案:{d,e,#}已知文法G(S)的部分产生式如下:M→K|bLML→eHfK→dML|ε,Select(M→bLM)集合是()

答案:{b}关于代码优化描述错误的是()。

答案:代码的优化和目标机有关,因此,针对不同目标机要进行不同的优化操作经编译得到的目标程序是

答案:机器语言程序或汇编语言程序按照课件中的虚拟机及其指令系统,当只有一个寄存器R时,设中间代码(/a2t1)为某个基本块的第一条代码,该中间代码对应的目标代码为

答案:LDR,aDIVR,2代码生成时,对于寄存器中最新的计算结果一定要马上送回主存单

答案:错寄存器地址模式的附加代价为()

答案:0()不可能是目标代码

答案:中间代码假设H是基本块出口的活跃变量,R0和R1是可用寄存器,对下列四元式组成基本块:A:=B*CD:=E+FG:=A+DH:=G*2生成目标代码如下:LDR0,BMULR0,CLDR1,EADDR1,FADDR0,R1MULR0,2()其中括号里的代码为

答案:STR0,H关于程序流图的描述错误的是()。

答案:无法通过流图进行基本块优化强度削弱是指把程序中执行时间较长的运算替换为执行时间较短的运算

答案:对对于基本快内Out集合由In集合计算出来,而对于基本块之间,In集合由前驱基本块的Out集合计算出来。这样的数据流问题属于

答案:向前流问题利用DAG进行局部优化,不能实现

答案:代码外提关于循环的描述正确是()。

答案:循环优化是针对循环体中语句的优化,包括与循环有关的和与循环无关的优化属于基本块的优化措施是()。

答案:删除多余运算,常量合并和传播关于基本块的描述正确的是()。

答案:只有一个入口语句,但可以有多个出口语句关于数据对象存储分配的描述正确的是()。

答案:数据对象中,常量存放在静态数据区,变量存放在动态数据区对于在编译时不能确定程序运行时数据空间的大小、允许递归调用的程序设计语言,一般采取静态存储分配策略。

答案:错对于下面的嵌套过程语言的程序,按照最近嵌套原则进行作用域分析,下面说法正确的是()programPvara,b:integer;procedureP1(i1,j1:integer);varc,d:integer;...end;procedureP2(i2,j2:integer);vara,c:integer;procedureP21;varb1,b2:boolean;...end;...end;...end;

答案:子程序P21可以调用子程序P1;子程序P21可以访问子程序P2中的形式参数i2关于过程/函数的活动记录描述错误的是()。

答案:为最大限度提高存储空间的利用率,一个函数在栈区仅保留一份活动记录以下关于数据存储的说法错误的是(

)。

答案:目标程序在目标机中运行时,都置身在一个连续的逻辑地址空间关于过程/程序块嵌套时,活动记录的相关描述正确的是()。

答案:过程/程序块的活动记录中,可以增加一个区域,专门存放静态链和动态链信息,通过动态链进行访问对于下面的高级语言程序:…procedureP(X,Y,Z);begin

Y:=Y+1;

Z:=Z+X;endP;begin

A:=2;

B:=3;

P(A+B,A,A);

printAend若参数传递的方法为传值,程序执行时所输出的A是(

)

答案:2存储组织中,为某些量动态分配存储空间的含义正确是()。

答案:在编译阶段为源程序的某些量进行分配存储空间,运行时再进行动态调整编译的各个阶段都可能要用到符号表。

答案:对符号的作用域是通过其在符号表中是否可见体现的。

答案:错目标代码生成阶段,对符号名进行地址分配的依据是()。

答案:符号表符号表可以是单表结构,也可以是多表结构,若采用多表结构,还需要维护一个作用域栈。

答案:对编译程序使用()区别名字的作用域。

答案:说明名字的过程或函数的静态层次号符号表中符号的常见属性,最关键的是符号名,要求不同符号的符号名尽可能不要相同。

答案:对对一般的程序设计而言,其编译程序的符号表应包含哪些内容及何时填入信息不能一概而论。

答案:对符号表可以用来帮助做名字的作用域分析。

答案:对符号表常用的操作不包括()。

答案:检查名字是否符合标识符命名的文法已知产生式S→ifBthenS1,其语义规则{B.true:=newlable;B.false:=S.next;S1.next:=S.next;S.code:=B.code‖gen(B.true':')‖S1.code},下列描述正确的有()

答案:S.next是整个语句执行完的下一条语句标号;newlable表示生成一个新的语句标号;此处newlable的值是S1语句块的第一个语句标号;.next是继承属性,所以跳转前需要先确定语句块S的下一条语句标号(a+b)/(c-d)对应的逆波兰式(后缀式)是()。

答案:ab+cd-/算术表达式在语义分析时直接转换成三地址码指令,不需要回填。

答案:对表达式(a+b)/c-(a+b)*d对应的三元式形式,(a+b)的运算结果用()表示。

答案:(1)无条件跳转语句gotoL的四元式描述是(gotoL--),其中“-”表示此处不填。

答案:对终结符号的属性值来自词法分析的结果。

答案:对某属性文法,产生式E→T关联的语义计算包括{E.val:=T.val},据此判断.val属性应该在()语法分析过程中进行语义计算。

答案:自底向上某属性文法,产生式S→B关联的语义计算包括{B.f:=S.f},据此判断.f是()属性。

答案:继承属性某属性文法中,为产生式A→Aa关联的语义计算可以是{A.n→A.n+1}。

答案:错某属性文法,产生式B→Bb关联的语义计算是B→{B1.in_num:=B.in_num}B1b{B.num:=B1.num-1},在自顶向下语法分析时,对于应该先计算的属性描述正确的是()。

答案:继承属性.in_numS-属性文法的语义技术是自底向上进行。

答案:对既有继承属性又有综合属性的文法是L-属性文法。

答案:对原来的文法G(S)的基础上,为其文法符号关联具有特定意义的属性,并为产生式关联语义计算或条件谓词,就构成属性文法。

答案:对语法制导的语义计算是指在语义分析的同时,顺便进行语法分析和检查。

答案:错基于属性文法的语义计算更适合在语法分析时实现语义计算。

答案:错若某项目集I={B®c·BB®·cBB®·d},当小圆点跳过的符号是d时,对跳转后新的项目集的描述正确的是(

)。

答案:项目集中的项目是归约项目,填写Action表;新项目集是{B®d·}若某项目集I={B®c·BB®·cBB®·d},当小圆点跳过的符号是B时,对跳转后新的项目集的描述正确的是(

)。

答案:根据该项目的转换,填写GOTO表;新项目集是{B®cB·}若某项目集I={B®c·BB®·cBB®·d},当小圆点跳过的符号是c时,对跳转后新的项目集的描述正确的是(

)。

答案:新项目集是{B®c·BB®·cBB®·d};根据该项目的转换,填写Action表对LR分析描述正确的有(

答案:LR分析能识别几乎所有上下文无关文法描述的程序语言若项目集I1是{S¢®E·},下列描述正确的是()

答案:填写Action表,填写内容acc若某项目集的核是E®a·A,则该项目集的全部项目是()。

答案:{E®a·AA®·cAA®·d}若项目集I1={S¢®E·},其中项目的类型是()。

答案:接受项目由项目集I0输入不同符号能跳转到()个新的项目集。

答案:3若初态项目集I0的核是S¢®·E,则I0的全部项目是()。

答案:{S¢®·EE®·aAE®·bB}产生式S¢®E能构造()个项目。

答案:2该文法是LL(1)文法。(

答案:正确Select(E’→+E)∩Select(E’→ε)的结果是空集Ø。()

答案:正确First(P)集合中的元素有(

)个。

答案:4关于T’的两个产生式T’→T|ε,选择T’→T时,当前的输入符号可能是下列(

)

答案:(;Λ;b;aFollow(T’)集合中的元素包括(

答案:;#+;)Follow(E’)集合中的元素包括(

答案:)First(E)集合中的元素包括(

)

答案:a;b;Λ;(First(T)集合中的元素包括(

答案:(;a;ΛFi

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论