如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
编译原理作业二第页(共NUMPAGES5页)<<编译原理>>作业二学号:____________姓名:____________成绩:____________题号一二三四五总分评卷分数205252030100得分得分评卷一.填空题(每空1分,共20分)1.语法分析程序是以单词串形式的源程序作为输入和分析的对象。2.就产生语法树的方向而言,大致将语法分析分为自顶向下和自底向上两大类。3.自顶向下的语法分析方法要回避的主要问题是左递归和回溯。4.在自顶向下的语法分析中,FIRST(γ)称为候选式的终结首符级,FOLLOW(A)称为符号A的后继终结首符集。5.LL(1)分析法中,第一个L的含义是从左到右扫描符号串,第二个L的含义是最左推导,1的含义是向前查看一个符号。6.简单优先分析法每次所规约的是句型的句柄。算符优先分析法每次所规约的是句型的最左素短语。7.语法制导翻译方法就是对文法的每个产生式都附加一个语义动作或语义子程序。8.常见的中间语言表示有:逆波兰式,四元式和_三元式_。9.常用动态存储方法有:栈式存储分配和堆式存储分配。10代码优化的主要目的是:提高目标代码执行效率。得分评卷二.判断题(每题1分,共5分)1.在规范规约中,句型中的最左素短语就是句柄。()2.简单优先语法分析中,若存在a优于b,则必有b低于a。()3.算符优先分析方法中,是按最左素短语进行规约,也可能将错误的句子正确规约。()4.优先语法分析中,构造优先函数是基于存储效率的考虑,所有的优先矩阵都能线性化,并且是唯一的。()5.到目前为止,还没有一个被广泛接受的、可用于描述中间代码生成所需的全部语义动作的形式化系统。()得分评卷三.简答题(每题5分,共25分)1.将后缀表示改写为中缀表式:AB*CD/-将中缀表示改写为逆波兰式:((a*d+c)/d+e)*f+g2.给出下面语句的四元式表示:if(A||B<C)thenS1;elseS2;3.简述预测分析方法的基本思想。4.简述简单优先分析方法的基本思想。5.简述算符优先分析方法的基本思想。得分评卷四.综合题(每题10分,共20分)1.对给定的文法计算FIRST集合。E->TE'FIRST(E)=FIRST(T)={(,i}E'->ATE'|εFIRST(E')=FIRST(A)∪{ε}={+,-,ε}T->FT'FIRST(T)=FIRST(F)={(,i}T'->MFT'|εFIRST(T')=FIRST(M)∪{ε}={*,/,ε}F->(E)|iFIRST(F)={(,i}A->+|-FIRST(A)={+,-}M->*|/FIRST(M)={*,/}2.设有文法G[E]:E→E+T|TT→T*F|FF→(E)|i=1\*GB3①证明E+T*F+i是文法的一个右句型。=2\*GB3②指出其中的直接短语和句柄,指出其中的素短语和最左素短语。得分评卷五.应用题(每题10分,共30分)1.试按S-属性波兰翻译文法给出语句switchcase结构翻译后所得的四元式序列(假定四元式开始序号NXQ=100)。2.试按S-属性波兰翻译文法给出语句:for(i=1;i<=10;i++){sum=sum+i/10;}翻译后所得的四元式序列(假定四元式开始序号NXQ=100)。3.试按S-属性波兰翻译文法给出语句:while(x<100)doif(y>1000)thennum:=a*b+x/y翻译后所得的四元式序列(假定四元式开始序号NXQ=1000)。