编译原理作业标准答案要点

发布 2022-07-01 02:38:28 阅读 5194

第一章引言。

一、解释下列各词。

源语言:编写源程序的语言(基本符号,关键字),各种程序设计语言都可以作为源语言。

源程序: 用接近自然语言(数学语言)的源语言(基本符号,关键字)编写的程序,它是翻译程序处理的对象。

目标程序: 目标程序是源程序经过翻译程序加工最后得到的程序。目标程序。

结果程序)一般可由计算机直接执行。

低级语言:机器语言和汇编语言。

高级语言:是人们根据描述实际问题的需要而设计的一个记号系统。如同自然语言(接近数学语言和工程语言)一样,语言的基本单位是语句,由符号组和一组用来组织它们成为有确定意义的组合规则。

翻译程序: 能够把某一种语言程序(源语言程序)改变成另一种语言程序(目。

标语言程序),后者与前者在逻辑上是等价的。其中包括:编译程序,解释程序,汇编程序。

编译程序: 把输入的源程序翻译成等价的目标程序(汇编语言或机器语言),然后再执行目标程序(先编译后执行),执行翻译工作的程序称为编译程序。

解释程序: 以该语言写的源程序作为输入,但不产生目标程序。按源程序中语句动态顺序逐句的边解释边执行的过程,完成翻译工作的程序称为解释程序。

二、什么叫“遍”?

指对源程序或源程序的中间形式(如单词,中间**)从头到尾扫描一次,并作相应的加工处理,称为一遍。

三、简述编译程序的基本过程的任务。

编译程序的工作是指从输入源程序开始到输出目标程序为止的整个过程,整个过程可以划分5个阶段。

词法分析:输入源程序,进行词法分析,输出单词符号。

语法分析:在词法分析的基础上,根据语言的语法规则把单词符号串分解成各类语法单位,并判断输入串是否构成语法正确的“程序”。

中间**生成:按照语义规则把语法分析器归约(或推导)出的语法单位翻译成一定形式的中间**。

优化:对中间**进行优化处理。

目标**生成:把中间**翻译成目标语言程序。

四、编译程序与解释程序的区别?

编译程序生成目标程序后,再执行目标程序;然而解释程序不生成目标程序,边解释边执行。

五、有人认为编译程序的五个组成部分缺一不可,这种看法正确吗?

编译程序的5个阶段中,词法分析,语法分析,语义分析和**生成生成是必须完成的。而中间**生成和**优化并不是必不可少的。优化的目的是为了提高目标程序的质量,没有这一部分工作,仍然能够得到目标**、

六、编译程序的分类。

目前基本分为:诊断编译程序,优化编译程序,交叉编译程序,可变目标编译程序。

第二章高级语言及其语法描述。

一、p36

6、令文法为。

n dndd 0129

⑴文法描述的语言l(g)是什么?

⑵给出句子34,568的最左推导和最右推导。

解:⑴l(g)=

或l(g)=

或 l(g)=

最左推导:nnddd3d34

nndnddddd5dd56d568

最右推导:nndn4d434

nndn8nd8n68d68568

7、写出一个文法,使其语言是奇数集,且每个奇数是不以0开头。

解:n cacabc

c 13579

a 129b b`bb`

b` 0a8、令文法为。

e te+te-t

t ft*ft/f

f (e)i

⑴给出i+i*i,i*(i+i)的最左推导和最右推导。

给出i+i+i,i+i*i的语法树。

解:⑴最左推导ee+tt+tf+ti+ti+t*fi+f*fi+i*fi+i*i

ett*ff*fi*fi*(e)i*(e+t)i*(t+t)i*(f+t)i*(i+t)

i*(i+f)i*(i+i)

最右推导ee+te+t*fe+t*ie+f*ie+i*it+i*if+i*ii+i*i

ett*ft*(e)t*(e+t)t*(e+f)t*(e+i)t*(t+i)t*(f+i)

t*(i+i)f*(i+i)i*(i+i)

⑵构造语法树。

e 最左推导构造语法树

e + t

e + t it ii

10、把下列文法改写为无二义的:

s ss(s)()

解:改写后的文法。

s sa(s)()

a (s)()

第三章词法分析。

一、p647、构造下列正规式相应的dfa m

构造相应的nfa m

构造转换矩阵表(用子集法)

ii0i1s 0 1

x1,2,3} 0 1

2,32,3} 和终态集,对每一个子集及每一个a进行考察;

对于输入1是可区别的,将分为 和 。

new = 对new 进行考察;

由于0结点不能接受输入的数字“0”,并不属于任何状态集,所以先将结点区别出来,又由于3结点输入的数字“0”到达4结点,所以将3结点也区别出来。将 分为 ,和

new = 对new 进行考察;

则不可划分合为一个状态,最终的结果是;

new =

根据最小化的结果构造矩阵表。

旧名 新名 0 1 2 3 4

s 0 1

构造最小化的dfa m

12将下图的有限自动机确定化和最小化。

a a,b

a⑴该有限自动机输入同一字符a时到达两个不同的结点,所以是nfa。

构造转换矩阵表(用子集法)

iia ibs a b

《教育教学原理》作业附标准答案

教育学 作业。一 填空题。1.从广义上说,凡是增进人地知识和技能 影响人们思想品德地活动,都是教育。2.学校教育内容具体表现为课程。3.教育自身直接具有地功能,或教育自身地职责和能力一般叫教育地本体功能。4.在教学中,教师运用实物 模型或形象化语言进行教学,使学生获得生动形象,并在此基础上进行思考,...

编译原理作业1答案

计算机科学系 2012春季学期。编译原理 第一次作业参 一 下列正则表达式定义了什么语言 用尽可能简短的自然语言描述 1.b ab ab 所有含有偶数个a的由a和b组成的字符串。2.c a a c b a b c c b b c a a b c 答案一 所有至少含有1个a和1个b的由a,b和c组成的...

编译原理作业7答案

软件学院 2012秋季学期。编译原理 第七次作业参 一 证明下列文法。s aa bac dc bdaa d是lalr 1 文法但不是slr 1 文法。构造lr 1 自动机 没有需要合并的状态 没有状态存在冲突,因而是lalr 1 文法。构造lr 0 自动机 在状态i6,由于 a follow a 因...