《编译原理》训练题
第一章
一.填空题
1.一个编译程序是一个               ,编译程序完成从          语言
  所写的源程序到       语言所写的目标程序的翻译工作。
2.编译程序的整个工作划分成阶段进行的,典型的划分方法,将编译过程分成六
  个阶段:                                     
                                                 
3.对编译程序而言,输入数据是          ,输出结果是             
4.编译方式与解释方式的根本区别在于       
判断题
(    ) 1.汇编程序是一个编译程序,它把汇编语言程序翻译成机器语言执行。
(    ) 2.编译程序是一个语言翻译程序,它把汇编语言程序翻译成机器语言执
行。
三.选择题
1.汇编程序是将  (1)    翻译成 (2)    ;编译程序是将(3)  翻译成(4)
可选项有:
a.汇编语言程序      b.机器语言程序
c.高级语言程序      d.汇编语言程序或机器语言程序
e.汇编语言程序或高级语言程序      f.机器语言程序或高级语言程序
2.用高级语言编写的程序经编译后产生的程序叫(1) 。用不同语言编写的程序产生(1)后,可用(2)连接在一起生成机器可执行的程序。在机器中真正执行的是(3)
可选项有:
a.源程序      b.目标程序      c.函数
d.过程        e.机器指令代码  f.模块
g.连接程序    h..程序库
3.编译程序与具体的机器(1),与具体的语言(2)
可选项有:
a.有关  b.无关
4.编译程序是一种常用的    软件。
可选项有:
a.应用    b.系统
5.编译程序生成的目标程序      是机器语言的程序。
可选项有:
a.一定  b.不一定
四、思考题
1.给出一个典型的编译程序的结构框图
2.什么是前端和后端?设想相同的前端不同的后端,相同的后端不同的前端生成的编译程序分别有何特征?
第二章
一.填空题
1. INT O A在每个过程目标程序的入口都有这样一条指令,用以完成              的工作,A域的值为                     
2. OPR O O在每个过程目标程序的      都有这样一条指令,用以完成         
                的工作。
3.PL/0编译程序运行时的存储分配策略采用栈式动态分配,用        链和        链的方式解决递归调用和非局部变量的引用问题。
4.           是构成语言文法的单词,是语法成分的最小单位。
二、思考题
1.若PL/0编译程序运行时的存储分配策略采用栈式动态分配,并用动态链和静态链的方式分别解决递归调用和非局部变量的引用问题,试写出下列程序执行到赋值语句b:=10时运行栈的布局示意图。
var x,y
procedure  p;
  var a;
procedure q;
var b;
begin (q)
b:=10;
end(q);
procedure s;
var c,d;
procedure r;
  var e,f;
    begin(r)
call q;
end(r);
begin(s)
call r;
end(s);
begin(p)
call s;
end(p);
begin(main)
call p;
end(main).
2.PL/0编译程序所产生的目标代码是一种假想栈式计算机的汇编语言,请说明该汇编语言中下列指令各自的功能和所完成的操作。
INT  o  A
OPR  o  o
CAL  o  A
第三章
一.填空题
1.设A是符号串,且A=CD,则X3=                    
2、产生式是用于定义                 的一种书写规则。
3、一个上下文无关文法所含四个组成部分是一组      一组     
一组      一组     
4.假设G是一个文法,S是文法的开始符号,如果S*X,则称X是     
5.文法G产生的      的全体是该文法描述的语言。
6.文法G[S]:SAc|aB  A→ab  Bbc描述的语言L(G[S])= {    }。
7.已知文法G[E]:
E::=T|E+T|E-T
T::=F|T*F|T/F
F::=(E)|i
该文法的开始符号(识别符号)是①    终结符号集合VT是{②  },非终结符号集合VN是{③    },句型T+T*F+i的简单短语有.    ,句柄为     
8.实际使用中,我们将限制文法中不能含有                      规则。
9.G[E]:
          E->E+T|E-T
          T->T*F|T/F|F
          F->(E)|i
  因为存在推导序列:  E=>E+T=>E+T*F  所以句型E+T*F
        的短语有:                             
        直接短语有:        句柄为:             
10.三型文法为:
        S->aS|a   
    所描述的语言是{ an| n>=          }
11.文法
S->a|^|(T)
T->T,S|S
(1) 下面对(a,(a,a)的推导为              推导:
S=>(T)=>(T,S)=>(S,S)=>(a,S)=>(a,(T))=>(a,(T,S))
    =>(a,(S,S))=>(a,(a,S))=>(a,(a,a))
判断题
(    ) 1. 设G=(VN,VT,P,S),若P中的每一个产生式α→β满足|β|≥|α|,仅
仅S→ε除外,则文法G是上下文无关的或2型文法。
(    ) 2. 设G=({S,A,B},{a,b},P,S),其中P由下列产生式组成:
            S→aBbA
            AaaSbAA
            BbbSaBB
文法G是上下文无关的或2型文法。
(    ) 3. 设G=(VN,VT,P,S),若P中的每一个产生式α→β满足α是一非
终结符,则文法G是上下文有关的或2型文法。
(    ) 4.若一文法G=(VN,VT,P,S)是上下文无关文法,则该文法G一定是上下文有关文法。
(    ) 5.若一文法G=(VN,VT,P,S)是3型文法,则该文法G一定是上下文有关文法。(    )6.如果一个文法存在某个句子对应两棵不同的语法树,则这个文法一定是二义的。
(    )7.*具有可数的无穷数量的元素,ε∈∑*
(    )8.文法G描述的语言是由文法的识别符号推出的所有符号串的集合
(    )9.一个句型中的最右直接推导称为该句型的句柄。
(    )10.已知语言L={anbn|n>=1},则文法A::=aAb|ε,可以产生语言L。
(    )11.文法G[E]完成字符串是什么为:
          E->E+T|E-T
          T->T*F|T/F|F
          F->(E)|i不是二义的.
三.选择题
1.在编译中产生语法树是为了(      )
可选项有:
a.语法分析    b.语义分析    c.词法分析    d.产生目标代码
2.文法G描述的语言是      的集合。
可选项有:
a 文法G 的字汇表V中所有符号组成的符号串
b 文法G的字汇表V 的闭包V*中的所有符号串

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。