编译原理

  • 格式:docx
  • 大小:77.39 KB
  • 文档页数:10

一般来说,编译程序按编译顺序一般分为_______、_______、_______、_______和_______5个阶段。(B) 1.词法分析; 2.语法分析; 3.语义分析和中间代码生成; 4.优化; 5.目标代码生成 选项A.5,4,1,2,3 选项B.1,2,3,4,5 选项C.1,2,4,3,5 选项D.5,1,2,3,4

文法G[S]: S::=Sa S::=Ba S::=c B::=Fm B::=b F::=m 则该文法是正则文法。(正确)

乔姆斯基文法分类中3型文法又称为( D )。𝑃35 选项A.无限制文法 选项B.上下文有关文法(1型文法) 选项C.上下文无关文法(2型文法) 选项D.正则文法(3型文法)

下面哪些不是语法分析器的仟务。( D ) 1. 分析单词是怎样构成的 2. 分析单词串是如何构成语句和说明的 3. 分析语句和说明是如何构成程序的 4. 分析程序的结构 选项A.1,4 选项B.4 选项C.1,3,4 选项D.1

提示:句子只能包含终结符 句型aAaBcbScA是文法S::=aAcB,A::=AaB,B::=bScA的一个规范句型。(S为文法的起始符号)。( 错误 )

文法G[S]: S::=D|SD D::= 0|1|2|3|4|5|6|7|8|9,则1D是该文法的句型,也是该文法的句子(错误)。 下面正规式(aa|bb)+表示的语言是a和b都是成对出现的{a,b}上的符号串。() 提示:画语法分析树后进行分析 已知文法G(S)为: S->S,D|D D->D(T) H->a|(S) T->T+S|S 则句型H,D(T+S)(S)的直接短语是H, T+S,S。()

提示:算符优先文法的概念 文法中的终结符号如果相邻出现或者两个终结符中只间隔一个非终结符,对一定存在优先关系。()

下面文法是算符文法() G[S]: S::=iBtS|iBtSeS B::=b

提示:(3)(/,2,e) 该三元式中的2表示引用第二步的结果 表达式a*b-c*d/e表示成如下的三元式序列。() (1)(*,a,b) (2)(*,c,d) (3)(/,2,e) (4)(-,1,3)

语句if(i<=n)表示成如下三元式序列,为假跳转到地址address_m。() (1)(<=,i,n) (2)(GOF,1,address_m)

表达式f=a*b-c*d/e表示成如下的四元式序列。() (1)(*,a,b,T1) (2)(*,c,d,T2) (3)(/,T2,e,T3) (4)(-,T1,T3,T4) (5)(=,T4,-,f)

程序代码的存储分配策略采用静态存储分配策略把程序代码放在一块静态确定的存储区域内()

提示:代码优化基本知识 代码优化阶段,变换前后的代码在逻辑上必须是等价的,变换不能改变程序的运行结果()。 一个自动机,初态和终态可以是同一个状态,且终态可以有多个。() 有文法如下: G[S]: S::=aSb|P P::=bPc|bQc Q::=Qa|a 消去文法左递归的结果是 S::=aSb|P P::=bPc|bQc Q::=aQ` Q`::=aQ`|ɛ

语义分静态语义和动态语义,运行时刻才能理解与确定的含义称为动态语义。() 有符号串-9635,则|-9635|的值为5。() 有符号串a=-9和b=2,则|ab|的值为-92。() 答案:正确

有符号串a=-2,则a3的值为-2-2-2。() 上下文无关文法的等价问题不可判定,但是对文法进行范式文法等价变换是可行的。() 文法G[Z]: Z::=BE A::=Ae|A|e B::=Ce|Af C::=Cf D::=f 和文法G[S]: S=BE A::=Ae|e B::=Ce|Af C::=Cf D::=f 等价。()

类型检查的基本工作在于按照语言的类型规则,检查运算的合法性与运算分量类型的一致性。()

C语言中结构说明如下: Structperson { char name[8]; int sex; int age; } struct person table[50]; 则person代表类型表达式 record((name X array(0..7,char)) X (sex X integer) X (age X integer))

C语言条件语句的抽象语法规则可以表示为:。() C语言程序中,如果函数的形参被定义为指针类型,那么在调用该函数时所采用的参数传递方式是传地址。()

C++程序中各函数之间信息交换和共享的方法通过全局变量的使用和参数传递。() 运行阶段的存储组织与管理的目的是改善编译程序的执行效率,运行阶段的存储分配做准备,改善目标代码的执行效率。()

在C++程序某一函数中有语句:static int result=0;则该语句定义的变量result采用静态存储分配分配策略。()

与机器相关的优化一般有寄存器的优化、多处理器的优化、特殊指令的优化及无用指令的消除。()

四元式序列: (1)( * , 2 , 3.1416 , t1) (2)( * , t1 , r , t2) (3)( := , t2 , , l) 经合并常量计算后将优化为: (1)(* , 6.2832 , r , t2) (2) (:= , t2 , , l)

对x+y*t-a*(x+y*t)/(y*t) 消除公共子表达式 未优化时: (1) (* , y , t , t1 ) (2) (+ , x , t1 , t2) (3) (* , y , t , t3 ) (4) (+ , x , t3 , t4 ) (5) (* , a , t4, t5 ) (6) (* , y , t , t6) (7) (/ , t5 , t6 ,t7) (8) (-,t2 , t7 , t8) 优化后: (1) (* , y , t , t1) (2) (+ , x , t1 , t2) (3) (* , a , t2 , t5) (4) (/ , t5 , t1 , t7) (5) (-,t2 , t7 , t8)

对于语句序列 for (n=1; n<=36; n=n+1) { S=3*9+9*n; r=r+1; printf (Angle is %d, Area is %f, n*10,S); } 可优化为 for (n=1; n<=36; n=n+1) { S=27+9*n; printf (Angle is %d, Area is %f, n*10,S); }

在使用LR分析表时,当前做了归约动作后就必须查找GOTO表。() 已知文法G(S)为:S::=aS|bS|bSc|0|a|b,下列符号串中是该文法的句子的有( )。 1.aabb 2.abb0c 3.a0bc 4.bbabcc 选项A.1,2,3 选项B.2,4 选项C.1,2,4 选项D.1,2,3,4

有语言L=(w| wϵ(0,1)+,并且w中至少有两个1,又在任何两个1之间有偶数个0),试该语言对应的正规表达式是。 选项A.0*1(00(00)*1)*00(00)*1110* 选项B.0*1(00(00)*1)*00(00)*110* 选项C.0*1(00(00)*1)*00(00)*10* 选项D.0*1(000(00)*1)*00(00)*10*

正规式(ab)*a和(aba)*的关系为()。 选项A.不能判断 选项B.不等价 选项C.等价

接受{0,1}上包含101这样的串的正规式是:________。 选项A. (0|1)*101*(00|11)* 选项B. (0|1)*101(0|1)* 选项C. (00|11)*1*01(0|1)* 选项D. (0|1)*101*1*01(0|1)* 有NFA如下图

a b 1 2,3 __________ 2,3 2 null 1,2 2,3 1,2 2 2 null

下划线处应该填( )? 选项A.1 选项B.2 选项C.1,2 选项D.2,3 选项E.null

完成算数表达式A+B*(C-D)+E/(C-D)**N的三元式序列 (1)(-,C,D) (2)(*,B,(1)) (3)(+,A,(2)) (4)(-,C,D) (5)_________ (6)(/,E,(5)) (7)(+,(3),(6)) 选项A. (**,(4),N) 选项B. (**,4,N) 选项C. (**, N,(4)) 选项D. (*,(4),N)

已知程序如下 Program main(input,output) var I:integer; B:array[1..2] of integer; Procedure Q(x:integer);