当前位置:   article > 正文

《编译原理》模拟试题_编译原理模拟试题一

编译原理模拟试题一

一、           选择题(50分,每空2,  无特别说明的均为单选题)

 

1、在使用高级语言编程时,首先可通过编译程序发现源程序的全部    错误。

a. 语法      b. 语义              c. 语用        d. 运行

 

2 要在某台机器上为某种语言构造编译程序,必须掌握下述那些内容____

a.    汇编语言          b. 高级语言    c. 源语言          d. 目标语言

e.       程序设计方法学    f. 机器语言     g. 编译方法

abf           afg           cdg           efg

 

3、用高级语言书写的源程序 必须通过编译,产生目标代码后才能投入运行。这种说法_____

a. 正确      b. 不正确   c. 不一定       d. 都不对

 

4、文法G所描述的语言是_____的集合。

a.   文法G的字汇表V中所有符号组成的符号串

b.   文法G的字汇表V的闭包V*中的所有符号串

c.   由文法的识别符号推出的所有符号串

d.   由文法的识别符号推出的所有终结符号串

 

5、给定文法, A::= bA | cc, 下面哪些符号串可由其推导出_____

cc           b*cc      b*cbcc   bccbcc   bbbcc

可选项有:

a.       b.        c.          d.     e.

      

6、一个语言的文法是_____

a.有限的            b.不唯一的             c.唯一的

 

7、若一个文法是递归的,则它所产生语言的句子个数______

a.必定是无穷的            b.是有限个的          c.根据具体情况而定

 

8、语法分析常用的方法是_____

自顶向下    自底向上  自左向右   自右向左

可选项有:

a.        b.         c.          d.

 

9LR(k)方法是______

a. 从左到右分析,每次走k步的一种编译方法。

b. 从左到右分析,共经过k步的一种编译方法。

c. 从左到右分析,每次向前预测k步的一种编译方法。

d. 从左到右分析,是否归约句柄要向后看k个输入符号的一种编译方法。

 

10(2)、在编译过程中,符号表的主要作用是_____

a. 帮助错误处理  b. 辅助语法错误的检查    c.  辅助语义的正确性检查

d. 辅助代码生成   e. 辅助对目标程序的优化

      

11LL(1)文法的条件是______

      a.   对形如U::=x1 | x2 | … | xn 的规则,要求First(xi)∩ First(xj)=Φ,(i≠j);

b.  对形如 U::=x1 | x2 | … | xn 的规则,若xi=>*ε, 则要求First(xj)∩ Follow(U)=Φ,(i≠j)

     c.    a b

   d.  都不是

 

12LR(k)文法_______二义性的。

a.都是          b.都不是            c.不一定都是

 

13、描述语言 L= { ambn |  nm1 } 的文法为_____

a. Z::=Abb     A::=aA | a                B::=bB   | b

b. Z::=AB | b    A::=Aa | a                  B::=aBb  | b

c. Z::=Ab            A::=aAb | a

d. Z::=aAb         A::=Ab | aAb | ε

 

14、一个句型中的可归前缀为______

a.短语       b.简单短语         c.句柄

d.规范前缀,且句柄位于该规范前缀的后端

 

15Chmosky3型语言是这样一种语言,其产生式限制为____

a.A::= π       b.  A::=a   A::=aB  

c.α::=β       d.   αAβ::=απβ

 

16、高级语言编译程序常用的语法分析方法中,LL分析法属于______分析方法。

a.自左至右   b.自顶向下   c.自底向上   d.自右至左

 

17、LL(1) 分析法的名字中,第一个“L”的含义是_____,第二个“L”的含义是______

a.自左至右   b.自顶向下   c.自底向上   d.自右至左

 

18、设有文法G[S]:  S-> S*S | S+S | (S) | a, 该文法_____二义性文法。

a.                  b. 不是           c. 不一定

 

19、动态存储分配时,可以采用的分配方法有 ______

(1) 过程为单位的栈式动态存储分配

(2)   堆存储分配         

(3)   最佳分配方法

a. (1)   b.  (2)   c. (2)(3)    d. (1)(2)(3)

 

20. 过程调用时,参数的传递方法通常有________

     (1) 传值    (2) 传地址    (3) 传结果     (4) 传名

     a. (1)(2)   b.(1)(2)(3)    c. (1)(2)(4)     d. (1)(2)(3)(4)

 

21. 在编译方法中, 动态存储分配的含义是什么? 可选项有____.

a.在运行阶段对源程序中的量进行分配

b.在编译阶段对源程序中的量进行分配

c.在编译阶段对源程序中的量进行分配,在运行时这些量的地址可以根据需要改变

d.以上都不正确

 

22. 过程信息表中至少应该包括有 _________

(1) 过程名    (2) 过程的静态层次         (3) 过程入口地址

(4) 过程首部在源程序中的行号            (5) 有关过程参数的信息

可选项有:

a.(1)(2)(3)  b.(1)(3)(4)  c.(1)(2)(3)(4)  d.(1)(3)(5)  e.(1)(2)(3)(4)(5)

 

23. 程序基本块是指  ________

(1)    一个子程序      

(2)    一个仅有一个入口和一个出口的语句

(3)    一个没有嵌套的程序段

(4)    一组顺序执行的程序段,仅有一个入口和一个出口

可选项有:

     a. (1)  b. (2)  c. (3)  d. (4)  e. (1)(4)   f. (1)(2)

 

二、           (15)给定文法 G[E] 如下所示:

E   ::=  j  |  (E)   |  EAE

A    ::=  + |   -    |  *  |  /

1、分别求出该文法的VnVtFollow(E) Follow(A) 集合。

2、试用最右推导验证  j+j*j  是否为该文法的句子;

3、试用画句子语法树的方法,说明该文法是否有二义性。

4、采用LL法分析时,是否需要消除左递归,怎样消除? 若用LR法分析呢?

 

 

三、           (7)设有循环语句

for  ( j=k; j<=k+100; j++)

{

a=x+y+z; 

b=x-y;

c=c+a*b;

}

试写出其展开式、三元式和优化后三元式。

四、           (15)设有文法G[S]:

(1)        S ::=     E                        

(2)        E ::=     aA

(3)       E ::=      bB

(4)          A::= cA

(5)          A::= d

(6)       B::=cB

(7)       B::=d

构造其LR(0)分析表并利用此分析表判断符号串acccd 是否为文法G[S]的句子。

 

 

(13)、在一个移入-归约的分析中采用以下的语法制导翻译模式,在按一产生式归约时,立即执行括号中的动作。

A-> aB    {  print “0”;  }

A->c      {  print “1”;  }

B->Ab      {  print “2”;  }

当分析器的输入为aacbb时,打印的字符串是什么?用正则式描述该文法产生的语言。打印的字符串结果有什么特征?

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/430824
推荐阅读
相关标签
  

闽ICP备14008679号