-
清华大学编译原理答案
【篇一:编译原理
(_
第二版
_<
/p>
清华大学
_
课后答案
)
】
第
1
题
解释下列术语:
(
1
)编译程序
(
2
)源程序
(
3
)目
标程序
(
4
)编译程序的前端
(
5
)后端
(
6
)遍
答案:
(
1
)
p>
编译程序:如果源语言为高级语言,目标语言为某台计算机
上的汇编
语言或机器语
言,则此翻译程序称为编译程序。
(
2
)
源程序:源语言编写的程序称为源程序。
(
3
)
目标程序:目标语言书写的程序称为目标程序。
(
4
)
p>
编译程序的前端:它由这样一些阶段组成:这些阶段的工作
主要依赖
于源语言而与
目标机无关。通常前端包括词法分析、语法<
/p>
分析、语义分析和中间代码生成这些阶
段,某些优化工作也可在前
端做,也包括与前端每个阶段相关的出错处理工作和符
p>
号表管理等
工作。
(
5
)
p>
后端:指那些依赖于目标机而一般不依赖源语言,只与中间
代码有关
的那些阶段,
即目标代码生成,以及相关出错处理和符号<
/p>
表操作。
(
6
)
p>
遍:是对源程序或其等价的中间语言程序从头到尾扫视并完
成规定任
务的过程。
第
2
题
一个典型的编译程序通常由哪些部分组成?各部分的主要功
能是什
么?并画出编译程
序的总体结构图。
答案:
一个典型的编译程序通常包含
8 <
/p>
个组成部分,它们是词法分析程序、
语法分析程序、语
义分析程序、中间代码生成程序、中间代码优化
程序、目标代码生成程序、表格管理程序和
错误处理程序
。其各部
分的主要功能简述如下。
词法分析程序:输人源程序,拼单词、检查单词和分析单词,输出
单词的机内表达形式。
语法分析
程序:检查源程序中存在的形式语法错误,输出错误处理
信息。
语义分析程序:进行语义检查和分析语义信息,并把分析的
结果保
存到各类语义信息表
中。
中
间代码生成程序:按照语义规则,将语法分析程序分析出的语法
单位转换成一定形式
p>
的中间语言代码,如三元式或四元式。
中间代码优化程序:为了产生高质量的目标代码,对中间代
码进行
等价变换处理。
目标代码生成
程序:将优化后的中间代码程序转换成目标代码程序。
<
/p>
表格管理程序:负责建立、填写和查找等一系列表格工作。表格的
作用是记录源程序的
各类信息和编译各阶段的进展情况,编
译的每
个阶段所需信息多数都从表格中读取,产生的
中间结果都记录在相
应的表格中。可以说整个编译过程就是造表、查表
的工作过程。需
要指
出的是,这里
的
“
表格管理程序
”
< br>并不意味着它就是一个独立的
表格管理模块,而是指编译
程序具有的表格管理功能。
p>
错误处理程序:处理和校正源程序中存在的词法、语法和语义错误。
当编译程序发现源
程序中的错误时,错误处理程序负责报告
出错的
位置和错误性质等信息,同时对发现的错误
进行适当的校正(修
复),目的是使编译程序能够继续向下进行分析和处
理。
注意:如果问编译程序有哪
些主要构成成分,只要回答六部分就可
以。如果搞不清楚,
就回答八部分。
第
3
题
何谓翻译程序、编译程序和解释程序?它们三者之间有何种
关系?
答案:
翻译程序是指将用某种语言编写的程序转换成另一种语言形式的程
序的程序,如编译程<
/p>
序和汇编程序等。
编译程序是把用高级语言编写的源程序转换(加工)成与之
等价的
另一种用低级语言编
写的目标程序的翻译程序。
p>
是哪种方式,其加工结果都是源程序的执行结果。目前很多解释程
序
采取上述两种方式的综
合实现方案,即先把源程序翻译成较
容易
解释执行的某种中间代码程序,然后集中解释执行
中间代码程序,
最后得到运行结果。
广义上讲,编译程序和解释程序都属于翻译程序,但它们的
翻译方
式不同,解释程序是
边翻译
(解释)边执行,不产生目标代码,输
出源程序的运行结果。而编译程序只负责把源
p>
程序翻译成目标程序,
输出与源程序等价的目标程序,而目标程序的执行任务由操作系统
来
完成,即只翻译不执行。
第
4
题
对下
列错误信息,请指出可能是编译的哪个阶段(词法分析、语法
分析、语义分析、
代码生成)报告的。
(
1
)
else
没有匹配的
if
(
2
)
数组下标越界
(
3
)
使用的函数没有定义
(
4
)
在数中出现非数字字符
答案:
(
1
)
语法分析
(
2
)
语义分析
(
3
)
语法分析
(
4
)
词法分析
第
5
题
编译程序大致有哪几种开发技术?
【篇二:编译原理
(
清华大学
第
2
版
)
课后习题答案】
;d= {0,1,2,3,4,5,6,7,8,9}
n=nd=ndd
l={a
|a(0|1|3..|9)n
且
n=1}
(0|1|3..|9)n
且
n=1
{ab,}
anbn
n=1
第
6
题
.
(1)
表达式
=
项
=
因子
= i
(2)
表达式
=
项
=
因子
= (
表达式
) =
(
项
)
=
(
因子
)=(i)
(3)
表达式
=
项
=
项
*
因子
=
因子
*
因子
=i*i
(4)
表达式
=
表达式
+
项
=
项
+
项
=
项
*
因子
+<
/p>
项
=
因子
*
因子
+
项<
/p>
=
因子
*
因
子
+
因子
=
i*i+i
(5)
表达式
=
表达式
< br>+
项
=
项
+
项
=
因子
+
项
=i+
项
= i+
因子
=
i+(
表达
式
) = i+(
表达式
+
项
)
= i+(
因子
+
因子
)
=
i+(i+i)
(6)
表达式
=
表达式
+
项
=
项
+
项
=
因子
+
项
= i+
项
=
i+
项
*
因子
= i+
因子
*
因子
< br> = i+i*i
第
7
题
1
第
9
题语法树
s
s*
+
a
a
a
推导
:
s=ss*=ss+s*=aa+a* 11.
推导
:e=e+t=e+t*f
语法树
:
e
+t
*
f
短语
: t*f e+t*f
直接短语
:t*f
句柄
: t*f
12
.
2
短语:
tfmop etfmoppop
直接短语:
tfmop
句柄:
tfmop
13.(1)
最左推导:
s =
abs = abs =asbbs = abbs
=
abbs = abbs = abbaa = abbaa
最右推导:
s = abs = abaa = abaa =
asbbaa
= asbbaa = asbbaa =
abbaa = a1b1b2a2a3
(2)
文法:
s ? abs
b ? b
(3)
短语:
a1 , b1 , b2, a2 , , bb ,
aa , abbaa,
直接短语:
a1 , b1 , b2, a2 , ,
句柄:
a1
14 (1)
s ? ab
s ? 1s0 s ? a
第四章
1. 1.
构造下列正规式相应的
dfa (1)
1(0|1)*101
nfa
(2) 1(1010*|1(010)*1)*0 nfa
3
(3)nfa
b
(4)nfa
a,b
2.
解:构造
dfa
矩阵表示
4
其中
0
表示初态,
< br>*
表示终态
用
0
,
1
,
2
,
3
,
4
,
5
分别
代替
{x} {z} {x,z} {y} {x,y}{x,y,z}
得
dfa
状态图为:
3
.解:构造
dfa
矩阵表示
构造
dfa
的矩阵表示
其中表示初态,
*
表示终态
替换后的矩阵
4
.(
1
)解
构造状态转换矩阵:
5
【篇三:清华大学编译原理第二版课后习答案】
ss=txt>
第
1
章引论
第
1
题
解释下列术语:
(
1
)编译
程序
(
2
)源程序
(
3
)目标
程序
(
4
)编译程序的前端
(
5
)后端
(
6
)遍
答案:
(
1
)
p>
编译程序:如果源语言为高级语言,目标语言为某台计算机
上的汇编
语言或机器语
言,则此翻译程序称为编译程序。
(
2
)
源程序:源语言编写的程序称为源程序。
(
3
)
目标程序:目标语言书写的程序称为目标程序。
(
4
)
p>
编译程序的前端:它由这样一些阶段组成:这些阶段的工作
主要依赖
于源语言而与
目标机无关。通常前端包括词法分析、语法<
/p>
分析、语义分析和中间代码生成这些阶
段,某些优化工作也可在前
-
-
-
-
-
-
-
-
-
上一篇:编译原理第三版课后习题答案
下一篇:(完整版)考研英语阅读表态度词汇汇总