编译原理考题答案(一二三章)

编译原理考题答案(一二三章)

ID:41127019

大小:588.00 KB

页数:8页

时间:2019-08-17

编译原理考题答案(一二三章)_第1页
编译原理考题答案(一二三章)_第2页
编译原理考题答案(一二三章)_第3页
编译原理考题答案(一二三章)_第4页
编译原理考题答案(一二三章)_第5页
资源描述:

《编译原理考题答案(一二三章)》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、第一章能够完成从一种语言到另一种语言的变换的软件称为翻译器编译器是一种翻译器,他进行语言变换的特点是目标语言比源语言低级编译的各个阶段:字符流-词法分析器-记号流-语法分析器-语法树-中间代码生成器-中间表示-独立与机器的代码优化器-中间表示-代码生成器-目标机器代码-依赖于机器的代码优化器-目标机器代码第二章语法分析器的任务是把构成源程序的字符流翻译成词法记号流。2.1词法分析是编译的第一阶段,它的主要任务是扫描输入字符流,产生用于词法分析的词法记号序列。完成的其他任务(实验一)其一是剥去源程序的注解和

2、由空格、制表或换行符等引起的空白,另一任务是把来自编译器各个阶段的错误信息和源程序练习起来。2.12词法记号的属性必考略2.21字母表上的串是该字母表符号的有穷序列术语语言表示字母表上的一个串集,属于该语言的串称为该语言的句子或字。如果x和y都是串,那么x和y的链接(xy)是吧y加到x后边形成的串。对连接运算而言,空串是一个恒等元素。表2.2语言运算的定义(未打印)例2.2略2.3语言的识别器是一个程序,它取串x作为输入,当x是语言的句子时,他回答是,否则回答不是。可以通过构造称为优先自动机的更一般的转换

3、图,把正规式翻译成识别器。有限自动机分为确定的和不确定的两种情况。不确定的含义是:存在这样的状态,对于某个输入符号,它存在不止一种转换。表2.6在NFA状态上的运算运算描述E-closure(s)从NFA的状态s出发,只用E转换能到达的NFA状态集合E-closure(T)NFA状态转换集合{s

4、s属于E-closure(t)并t属于T}Move(T,a)NFA的状态集合{s

5、s属于move(t,a)并t属于T}(move被拓展成多台函数)NFA转化为DFA略DFA化简略课后习题:第三章词法分析器记号取下

6、一个记号源程序图3.1分析器在编译器模型中的位置分析树前端的其余部分分析器分析树符号表3.1一个上下文无关文法G是一个四元组(Vt,Vn,S,P),其中:Vt是一个终结符集合,Vn是非终结符集合Vt并Vn=空集,S是一个终结符,称为开始符号,P是产生式的有限集合。3.1.2代换句型中最左边非终结符的推导,这样的推导叫做最左推导。最右推导,略。3.14二义性一个文法如果存在某个句子有不止一颗分析树与之对应,那么称这个文法是二义的。3.2.5消除二义性。二义文法:stmt®ifexprthenstmt

7、ife

8、xprthenstmtelsestmt(3.5)

9、other非二义文法:stmt®matched_stmt

10、unmatched_stmtmatched_stmt®ifexprthenmatched_stmtelsematched_stmt

11、other(3.7)unmatched_stmt®ifexprthenstmt

12、ifexprthenmatched_stmtelseunmatched_stmt3.2.6消除左递归左递归产生式A®Aa

13、b,可以用非左递归的A®bA¢A¢®aA¢

14、e3.2.7提左因子如果

15、A®ab1

16、ab2原来的产生式成为:A®aA¢A¢®b1

17、b23.3.2一个文法的符号串a的开始符号集合FIRST(a)是FIRST(a)={a

18、aÞ*a…,aÎVT}特别是,aÞ*e时,规定eÎFIRST(a)。如果非终结符A的所有选择的开始符号集合两两不相交,即对A的任何两个不同的选择ai和aj,有FIRST(ai)ÇFIRST(aj)=f非终结符A的后继符号集合FOLLOW(A)是,所有在句型中可以直接出现在A后面的终结符的集合,也就是FOLLOW(A)={a

19、SÞ*…Aa…,aÎVT}此外,如果A

20、是某个句型的最右符号,那么$属于FOLLOW(A)。如果有产生式A®aB或A®aBb且bÞ*e,那么FOLLOW(A)的一切元素都要加入FOLLOW(B)中。需要文法的任何两个产生式A®a

21、b都满足下面两个条件:(1)FIRST(a)ÇFIRST(b)=f;(2)若bÞ*e,那么FIRST(a)ÇFOLLOW(A)=f。我们把满足这两个条件的文法叫做LL(1)文法,其中的第一个L代表从左向右扫描输入,第二个L表示产生最左推导,1代表在决定分析器的每步动作时向前看一个输入符号。3.3.4非递归的预测分析这个

22、分析器的工作过程如下。预测分析程序根据当前的栈顶符号X和输入符号a决定分析器的动作,它有四种可能:(1)如果X=a=$,分析器宣告分析完全成功而停机。(2)如果X=a¹$,分析器弹出栈顶符号X,并推进输入指针,指向下一个符号。(3)如果X是终结符但不是a,则分析器报告出错,调用错误恢复例程。(4)如果X是非终结符,程序访问分析表M,若M[X,a]是X的产生式,例如,M[X,a]={X®UVW},那么分析器用WVU代替栈顶的X,

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。