欢迎来到天天文库
浏览记录
ID:14046940
大小:331.00 KB
页数:27页
时间:2018-07-25
《编译原理课后习题答案》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第一章1.解答:程序设计语言:程序设计语言是遵守一定规范的、描述“计算”(Computing)过程的形式语言。一般可以划分为低级语言和高级语言两大类。低级语言是面向机器的语言,它是为特定的计算机系统设计的语言,机器指令、汇编语言是低级语言。高级语言是与具体计算机无关的“通用”语言,它更接近于人类的自然语言和数学表示,例如FORTRAN、Pascal、C等等我们熟悉的语言是高级语言。语言处理程序:由于目前的计算机只能理解和执行机器语言,因此必须有一个程序将用程序设计语言书写的程序等价(执行效果完全一致)地转
2、换为计算机能直接执行的形式,完成这一工作的程序称为“语言处理程序”。它一般可分为解释程序和翻译程序两大类。翻译程序: 翻译程序(Translator)是一种语言处理程序,它将输入的用程序设计语言书写的程序(称为源程序)转换为等价的用另一种语言书写的程序(称为目标程序)。若源语言是汇编语言,目标程序是机器语言,称这种翻译程序为汇编程序。若源语言是高级语言,目标程序是低级语言,称这种翻译程序为编译程序。解释程序:解释程序(Interpreter)是一种语言处理程序,它对源程序逐个语句地进行分析,根据每个语句的
3、含义执行语句指定的功能。2.解答:编译程序的总框图见图1.2。其中词法分析器,又称扫描器,它接受输入的源程序,对源程序进行词法分析,识别出一个个的单词符号,其输出结果是单词符号。语法分析器,对单词符号串进行语法分析(根据语法规则进行推导或归约),识别出程序中的各类语法单位,最终判断输入串是否构成语法上正确的“程序”。语义分析及中间代码产生器,按照语义规则对语法分析器归约出(或推导出)的语法单位进行语义分析并把它们翻译成一定形式的中间代码。编译程序可以根据不同的需要选择不同的中间代码形式,有的编译程序甚至没
4、有中间代码形式,而直接生成目标代码。优化器对中间代码进行优化处理。一般最初生成的中间代码执行效率都比较低,因此要做中间代码的优化,其过程实际上是对中间代码进行等价替换,使程序在执行时能更快,并占用更小的空间。目标代码生成器把中间代码翻译成目标程序。中间代码一般是一种机器无关的表示形式,只有把它再翻译成与机器硬件直接相关的机器能识别的语言,即目标程序,才能在机器上运行。表格管理模块保持一系列的表格,登记源程序的各类信息和编译各阶段的进展状况。编译程序各个阶段所产生的中间结果都记录在表格中,所需要的信息也大多
5、从表格中获取,整个编译过程都在不断地和表格打交道。出错处理程序对出现在源程序中的错误进行处理。如果源程序有错误,编译程序应设法发现错误,把有关错误信息报告给用户。编译程序的各个阶段都有可能发现错误,出错处理程序要对发现的错误进行处理、记录,并反映给用户Chapter21.试写出VT={0,1}上下述集合的正则表达式:⑴所有以1开始和结束的符号串。⑵恰含有3个1的所有符号所组成的集合。⑶集合{01,1}。⑷所有以111结束的符号串。解答:⑴1(0
6、1)*1
7、1⑵0*10*10*10*⑶01
8、1⑷(0
9、1)*
10、1112.⑴试写出非负整数集的正则表达式。⑵试写出以非5数字为头的所有非负整数集的正则表达式。解答:⑴0
11、(1
12、2
13、3
14、4
15、5
16、6
17、7
18、8
19、9)(0
20、1
21、2
22、3
23、4
24、5
25、6
26、7
27、8
28、9)*⑵0
29、(1
30、2
31、3
32、4
33、6
34、7
35、8
36、9)(0
37、1
38、2
39、3
40、4
41、5
42、6
43、7
44、8
45、9)*3.试将2.8中所示的有限状态自动机M最小化。分析:只能对确定的有限状态自动机进行最小化,本题的自动机已经是确定的。最小化采用状态分离法,具体做法如下:①进行0等价类的划分:Q划分为Qf与Q-Qf②若已进行了k等价划分,即Q已被划分成(Q
46、1,Q2,…Qn),再进行k+1划分,对Qi(i=1…n),若q、q’ÎQi,使得对某一个aÎVT,d(q,a)ÎQj和d(q’,a)ÎQl,j≠l或d(q,a)存在而d(q’,a)不存在或反之。则将Qi划分为二个子集Qi1,Qi2,使qÎQi1,q’ÎQi2。③重复②直至无法进一步划分为止。对最后划分得到的状态子集中每一个子集,选择该子集中任何一个状态作为该状态子集的代表,然后修改原来的有限状态自动机的状态转换函数d,凡在d作用下转向某状态子集中任何一个状态的一律改成转向该状态子集的代表。若一个状态子集
47、中某一状态是原来的开始状态,则该状态子集的代表就是新的有限状态自动机的开始状态。同理,若一个状态子集中的状态均是最终状态,则该状态子集的代表就是新的有限状态自动机的最终状态。④抹去可能存在的无用状态与不可及状态。解答:此有限状态自动机的状态转换表如表3.1所示:表2.1M的状态转换表 ab^ABC BDC CBE DDFAcceptEGEAcceptFGEAcceptGDFAccept由此看出:此有限状态自动机是确定的。最小化
此文档下载收益归作者所有