- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《编译原理》模拟试卷
班级 学号 姓名 评分
一、 填空
1.文法 G 包括四个组成部分:一组终结符号, ,一组产生式,以及 。
2 .文法按产生式的形式分为四种类型,它们是: 0 型文法,又称短语文
法;1 型文法,又称上下文有关文法; 2 型文法,又称文法; 3 型文 法,又称 文法。
3. 推导称为规范推导,由产生的句型称为规范句型。
4.设G是一个文法,S是它的开始符号,如果 S a,则称a是一个句型。 的句型是一个句子。
5对于一个文法G而言,如果L(G)中对应,那么该文法就称为是二义的。
通常程序设计语言的单词符号分为五种:基本字、、常数、、界限符。
在自底向上分析法中, LR 分析法把“可归约串”定义为 。
编译中常用的中间代码形式有逆波兰式、、和四元式等。
对中间代码优化按涉及的范围分为局部优化, 和 。
局部优化主要包括合并已知量、和等内容。
、编译过程通常分为哪几个主要阶段?每个阶段的主要功能?
三、设有文法 Gi G: S-SaQ I Q
1证明句型QbRae是规范句型 CHQbR I R
R—cSd I e
2.给出句型QbRae的短语,直接短语和句柄:
短语:
直接短语:
句柄:
四、对于文法
G2,填写各产生式的选择集合和
G2的预测分析表。
G2:① E— TE
SELECT(
①)={
}
② E H+TE
SELECT(
②)={
}
③ E — £
SELECT(
③)={
}
④ T — FT
SELECT(
④)={
}
⑤ T —*FT
SELECT(
⑤)={
}
⑥ T —
SELECT(
⑥)={
}
⑦)={ }F
⑦)={ }
F— iSELECT⑧)={ }
+
*
(
)
i
#
E
E
T
T
F
五、把下面的语句翻译成四元式序列。
(只给出最后结果,设nextstat当前值为100)
while AvC do if A0 then A:=A+1 else A:=A+2
六、用基本块代码生成算法生成目标代码。
(假定允许使用R和Fb寄存器,临时变量T出基本块后都不活跃)
四元式
选取R
目标代码
RVALUE
AVALUE
「: = A+B T2: = C-T1
Ta: = D*E
T4: = F+G
T5:= T 3-T 4 W = T2/T5
《编译原理》模拟试卷
班级学号姓名评分
填空
填空
1文法G包括四个组成部分:一组终结符号, 一组非终结符号,一组产生 式,以及一个开始符号。
2?文法按产生式的形式分为四种类型,它们是: 0型文法,又称短语文
法;1型文法,又称上下文有关文法; 2型文法,又称 上下文无关 文
法;3型文法,又称正规文法。
3.最右推导称为规范推导,由 规范推导产生的句型称为规范句型。
4?设G是一个文法,S是它的开始符号,如果 S=* a,则称a是一个句 型。仅由终结符号组成 的句型是一个句子。
5对于一个文法 G而言,如果L(G)中存在某个句子 对应两棵不同的语法 树,那么该文法就称为是二义的。
6?通常程序设计语言的单词符号分为五种:基本字、 标识符、常数、算
符、界限符。
7?在自底向上分析法中,LR分析法把“可归约串”定义为 句柄。
8?编译中常用的中间代码形式有逆波兰式、 三元式、树代码和四元式等。
9?对中间代码优化按涉及的范围分为局部优化, 循环优化和全局优化。
10.局部优化主要包括合并已知量、 利用公共子表达式 和删除无用赋值 等内 容。
11 ?为了构造不带回溯的递归下降分析程序,我们通常要消除 左递归和提取
左公共因子
二、编译过程通常分为哪几个主要阶段?每个阶段的主要功能? ( 15 分)
答:编译过程通常分为词法分析、语法分析、语义分析、中间代码生成、代 码优化和目标代码生成六个主要阶段。各个阶段的主要功能如下: 词法分析阶段:读入源程序,对构成源程序的字符流进行扫描和分 解,识别出一个个单词,并表示成计算机内部的形式(TOKEN字) 语法分析阶段:在词法分析的基础上,将单词序列分解成各类语法 短语,如“表达式”、“语句”、“程序”等,确定整个输入串是否构 成语法上正确的程序。
语义分析阶段:审查源程序有无语义错误,为代码生成阶段收集类 型信息。
中间代码生成阶段:将源程序翻译成一种复杂性介于源程序与目标 程序之间的内部形式(中间代码)。
代码优化:对前阶段产生的中间代码进行等价变换,目的是使将来 生成的目标代码更为高效。
目标代码生成:把中间代码变换成特定机器上的绝对指令代码或可 重定位的指令代码或汇编指令代码。
、设有文法G
、设有文法Gi
G: Sf SaQ I Q
1.证明句型QbRae是规范句型 CHQbR I R
Rf cSd I e
证:因为句型 QbRae可由文法开始符 S经过规范推导产
原创力文档


文档评论(0)