编译原理历年试题及答案
一.(每项选择2分,共20分)选择题1.将编译程序分成若干个“遍”是为了_b__。a提高程序的执行效率b使程序的结构更加清晰c利用有限的机器内存并提高机器的执行效率d利用有限的机器内存但降低了机器的执行效率2.构造编译程序应掌握__d__。a源程序b目标语言c编译方法d以上三项都是3.变量应当c_。a持有左值b持有右值c既持有左值又持有右值d既不持有左值也不持有右值4.编译程序绝大多数时间花在_d___上。a出错处理b词法分析c目标代码生成d管理表格5.词法分析器的输出结果是_c___。a单词的种别编码b单词在符号表中的位置c单词的种别编码和自身值d单词自身值6.正规式MI和M2等价是指__c__。aMI和M2的状态数相等bMl和M2的有向弧条数相等。CM1和M2所识别的语言集相等dMl和M2状态数和有向弧条数相等7.中间代码生成时所依据的是c。a.语法规则b.词法规则c.语义规则d.等价变换规则8.后缀式abcd可用表达式__b_来表示。a.abcdb.abcdc.abcdd.abcd9.程序所需的数据空间在程序运行前就可确定,称为____c__管理技术。a动态存储b栈式存储c静态存储d堆式存储10堆式动态分配申请和释放存储空间遵守___d_____原则。a先请先放b先请后放c后请先放d任意二(每小题10分,共80分)简答题1画出编译程序的总体结构图,简述各部分的主要功能。2已知文法GEE→ETTT→TFFF→Fa试证:FF是文法的句型,指出该句型的短语、简单短语和句柄3.为正规式abaab构造一个确定的有限自动机。4.设文法GS:S→LaSaL→L,SS1消除左递归和回溯;
f2计算每个非终结符的FIRST和FOLLOW;3构造预测分析表。5.已知文法AaAdaAbε判断该文法是否SLR(1)文法,若是构造相应分析表,并对输入串ab给出分析过程。6.构造算符文法GH的算符优先关系(含#)。GH:H→HMMM→daHb7.已构造出文法G(S)(1)SBB(2)BaB(3)Bb1)。给出DFA图2)给出LR分析表3).假定输入串为abaab,请给出LR分析过程(即状态,符号,输入串的变化过程)。8.将下面的语句翻译成四元式序列:whileAC∧BDdoifA1the
CClelsewhileA≤DdoAA2;9.对下面的流图,1求出流图中各结点N的必经结点集D
,2求出流图中的回边,3求出流图中的循环。
参考答案一.单项选择题1将编译程序分成若干个“遍”是为了使编译程序的结构更加清晰,故选b。2构造编译程序应掌握源程序、目标语言及编译r