整理完编译原理网上作业题1101.docx
- 文档编号:27159915
- 上传时间:2023-06-27
- 格式:DOCX
- 页数:46
- 大小:38.62KB
整理完编译原理网上作业题1101.docx
《整理完编译原理网上作业题1101.docx》由会员分享,可在线阅读,更多相关《整理完编译原理网上作业题1101.docx(46页珍藏版)》请在冰豆网上搜索。
整理完编译原理网上作业题1101
东北农业大学网络教育学院
编译原理网上作业题
第一章编译概述
一、多项选择题:
1.编译程序各阶段的工作都涉及到〔。
〔﹡﹡
A.语法分析B.表格管理C.出错处理D.语义分析E.词法分析
2.编译程序工作时,通常有〔阶段。
〔﹡
A.词法分析B.语法分析C.中间代码生成D.语义检查E.目标代码生成
二、填空题:
1.解释程序和编译程序的区别在于〔。
〔﹡
2.编译过程通常可分为5个阶段,分别是〔、〔、〔、〔和〔生成。
〔﹡
3.编译程序工作过程中,第一段输入是〔,最后阶段的输出为〔程序。
〔﹡
4.编译程序是指将〔程序翻译成〔程序的程序。
〔﹡
三、综合题:
1.画出编译程序的总体结构图,简述各部分的主要功能。
〔﹡﹡﹡
第二章文法和语言的基本知识
一、多项选择题:
1.下面哪些说法是错误的〔。
〔﹡﹡
A.有向图是一个状态转换图 B.状态转换图是一个有向图
C.有向图是一个DFA D.DFA可以用状态转换图表示
2.对无二义性文法来说,一棵语法树往往代表了〔。
〔﹡﹡
A.多种推导过程 B.多种最左推导过程
C.一种最左推导过程D.仅一种推导过程 E.一种最左推导过程
3.如果文法G存在一个句子,满足下列条件〔之一时,则称该文法是二义文法。
〔﹡﹡
A.该句子的最左推导与最右推导相同 B.该句子有两个不同的最左推导
C.该句子有两棵不同的最右推导 D.该句子有两棵不同的语法树 E.该句子的语法树只有一个
4.有一文法G:
S→AB
A→aAb|ε
B→cBd|ε
它不产生下面〔集合 〔﹡﹡
A.{anbmcsup>ndm|n,m≥0} B.{anbncsup>mdm|n,m>0}
C.{anbmcsup>mdn|n,m≥0} D.{anbncsup>mdm|n,m≥0} E.{anbncsup>ndm|n,n≥0}
5.自下而上的语法分析中,应从〔开始分析。
〔﹡
A.句型B.句子C.以单词为单位的程序D.文法的开始符E.句柄
6.对正规文法描述的语言,以下〔有能力描述它。
〔﹡﹡
A.0型文法B.1型文法C.上下文无关文法D.右线性文法E.左线性文法
二、填空题:
1.文法中的终结符和非终结符的交集是〔。
词法分析器交给语法分析器的文法符号一定是〔,它一定只出现在产生式的〔部。
〔﹡
2.最左推导是指每次都对句型中的〔非终结符进行扩展。
〔﹡
3.在语法分析中,最常见的两种方法一定是〔分析法,另一是〔分析法。
〔﹡
4.采用〔语法分析时,必须消除文法的左递归。
〔﹡
5.〔树代表推导过程,〔树代表归约过程。
〔﹡
6.自下而上分析法采用〔、归约、错误处理、〔等四种操作。
〔﹡﹡
7.Chomsky把文法分为〔种类型,编译器构造中采用〔和〔文法,它们分别产生〔和〔语言,并分别用〔和〔自动机识别所产生的语言。
〔﹡﹡
三、判断题:
1.文法S→aS|bR|ε R→cS。
描述的语言是*〔﹡
2.在自下而上的语法分析中,语法树与分析树一定相同。
〔﹡
3.二义文法不是上下文无关文法。
〔﹡
4.语法分析时必须先消除文法中的左递归。
〔﹡
5.规归约和规推导是互逆的两个过程。
〔﹡
6.一个文法所有句型的集合形成该文法所能接受的语言。
〔﹡
7.有穷自动机接受的语言是正则语言。
〔﹡
8.若r1和r2是Σ上的正规式,则r1|r2也是。
〔﹡
9.令Σ={a,b},则Σ上所有以b为首的字构成的正规集的正规式为b**。
〔﹡
四、简答题
1.句柄:
〔﹡
2.素短语:
〔﹡﹡
3.语法树:
〔﹡﹡
4.归约:
〔﹡﹡
5.推导:
〔﹡﹡
五、问答题
1.给出上下文无关文法的定义。
〔﹡﹡
2.文法G[S]:
S→aSPQ|abQ
QP→PQ
bP→bb
bQ→bc
cQ→cc
〔1它是Chomsky哪一型文法?
〔2它生成的语言是什么?
〔﹡﹡﹡
3.按指定类型,给出语言的文法。
L={aibj|j>i≥1}的上下文无关文法。
〔﹡﹡
4.有文法G:
S→aAcB|Bd
A→AaB|c
B→bScA|b
〔1试求句型aAaBcbbdcc和aAcbBdcc的句柄;
〔2写出句子acabcbbdcc的最左推导过程。
〔﹡﹡﹡
5.对于文法G[S]:
S→〔L|aS|a
L→L,S|S
〔1画出句型〔S,〔a的语法树。
〔2写出上述句型的所有短语、直接短语、句柄和素短语。
〔﹡﹡﹡
6.考虑文法G[S],其产生式如下:
S→
L→L,S|S
给出句子>的分析树。
〔﹡﹡
7.考虑文法G[T]:
T→T*F|F
F→F↑P|P
P→〔T|i
证明T*P↑〔T*F是该文法的一个句型,并指出直接短语和句柄。
〔﹡﹡
8.试描述下列文法产生的语言L〔G[S]〔﹡﹡
S→10S0|aA
A→bA|a
9.已知语言L
〔﹡﹡
10.证明下列文法的二义性〔﹡﹡﹡
1.G[Z] 2.G[S]
Z→aZbZ|aZ|a S→AB
A→bB|bC|ba
B→Sb|ba|a
C→Bb|b
11.有文法G[S]:
S→iSeS|iS|i
该文法是否是二义的。
试证明之。
〔﹡﹡
12.文法G[T]:
T→aR,R→Tb|d生成的语言是什么?
G[T]是否为3型文法?
〔﹡﹡
13.试写出能够描述下列格式的文法。
〔﹡﹡
67391742
2
14.试构造生成语言的上下文无关文法。
〔﹡﹡﹡
<1>{anbnci|n≥1,i≥0}
<2>{w|w∈{a,b}+,且w中a的个数恰好比b多1}
15.下面的二义性文法描述命题演算公式,为它写一个等价的非二义性文法。
G[S]:
S->SANDS|SORS|NOTS|p|q|〔﹡﹡
16.对于下列语言分别写出它们的正规表达式。
〔﹡﹡
<1> 英文字母组成的所有符号串,要求符号串中顺序包含五个元音。
<2> 英文字母组成的所有符号串,要求符号串中的字母依照词典顺序排列。
第三章词法分析与有穷自动机
一、多项选择题:
1.在词法分析中,能识别出〔。
〔﹡﹡
A.基本字 B.四元式 C.运算符 D.逆波兰式 E.常数
2.令∑={a,b},则∑上所有以b开头,后跟若干个ab的字的全体对应的正规式为〔。
〔﹡﹡
二、填空题:
1.确定有限自动机DFA是〔的一个特例。
〔﹡
2.若二个正规式所表示的〔相同,则认为二者是等价的。
〔﹡
3.一个字集是正规的,当且仅当它可由〔所〔。
〔﹡
三、判断题:
1.一个有限状态自动机中,有且仅有一个惟一终态。
〔
2.设r和s分别是正规式,则有L〔r|s=L。
〔
3.自动机M和M′的状态数不同,则二者必不等价。
〔
4.确定的自动机以及不确定的自动机都能正确地识别正规集。
〔
5.对任意一个右线性文法G,都存在一个NFAM,满足L
〔
6.对任意一个右线性文法G,都存在一个DFAM,满足L
〔
7.对任何正规表达式e,都存在一个NFAM,满足L
〔
8.对任何正规表达式e,都存在一个DFAM,满足L
〔
9.设M是一个NFA,并且L
〔
10.对任何一个NFAM,都存在一个DFAM',使得L
〔
四、综合题:
1.设M=〔{x,y},{a,b},f,x,{y}为一非确定的有限自动机,其中f定义如下:
f〔x,a={x,y} f〔a,b={y}
f〔y,a=φ f〔y,b={x,y}
试构造相应的确定有限自动机M′。
〔﹡﹡
2.对给定正规式b*〔d|ad〔b|ab+,构造其NFAM。
〔﹡﹡
3.字母表{a,b}上的正规式R=〔ba|a*,构造R的相应DFA。
〔﹡﹡
4.请写出在∑=〔a,b上,不是a开头的,但以aa结尾的字符串集合的正规表达式,并构造与之等价状态最少的DFA。
〔﹡﹡﹡
5.人运狼、羊、菜过河,一次运一件,不让羊吃掉菜,也不让狼吃掉羊,画出渡河的状态转换图。
可否将其抽象为一个有限自动机。
〔﹡﹡﹡
6.对于正规表达式*a构造最小状态的DFA。
〔﹡﹡
第四章语法分析
一、多项选择题:
1.一个LR分析器包括〔。
〔﹡﹡
A.一个总控程序B.一个项目集C.一个活前缀D.一分析表E.一个分析栈
2.LR分析器核心部分是一分析表,该表包括〔等子表。
〔﹡﹡
A.LL<1>分析B.优先关系C.GOTOD.LRE.ACTION
3.每一项ACTION[S,a]所规定的动作包括〔。
〔﹡﹡
A.移进B.比较C.接受 D.归约 E.报错
4.对LR分析表的构造,有可能存在〔动作冲突。
〔﹡﹡
A.移进B.归约 C.移进/归约 D.移进/移进 E.归约/归约
5.对LR分析器来说,存在〔等分析表的构造方法。
〔﹡﹡
A.LALR B.LR〔0 C.SLR〔1 D.SLR〔0 E.LR〔1
6.自上而下的语法分析方法有〔。
〔﹡﹡
A.算符优先分析法 B.LL〔1分析法 C.SLR〔1分析法 D.LR〔0分析法 E.LALR〔1分析法
二、填空题:
1.对于一个文法,如果能够构造〔。
使得它的〔均是唯一确定的,则称该文法为LR文法。
〔﹡
2.字的前缀是指该字的〔。
〔﹡
3.活前缀是指〔的一个前缀,这种前缀不含〔之后的任何符号。
〔﹡
4.在LR分析过程中,只要〔的已扫描部分保持可归约成一个〔,则扫描过的部分正确。
5.将识别〔的NFA确定化,使其成为以〔为状态的DFA,这个DFA就是建立〔的基础。
〔﹡﹡
6.A→α·称为〔项目;对文法开始符S′→α·为〔项目;若a为终结符,则称A→α·aβ为〔项目;若B为非终结符,则称A→α·aβ为〔项目。
〔﹡﹡
7.LR〔0分析法的名字中"L"表示〔,"R"表示〔,"0”表示〔。
三、判断题:
1.对一个右线性文法G,必存在一个左线性文法G',使得L
〔﹡
四、综合题:
1.构造下面文法的LL〔1分析表。
〔﹡﹡﹡
D→TL
T→int|real
L→idR
R→,idR|ε
2.下面文法G[S]是否为LL〔1文法?
说明理由。
〔﹡﹡
S→AB|PQx A→xy B→bc
P→dP|ε Q→aQ|ε
3.设有以下文法:
〔﹡﹡﹡
G[S]:
S→aAbDe|d
A→BSD|e
B→SAc|cD|ε
D→Se|ε
〔1求出该文法的每一个非终结符U的FOLLOW集。
〔2该文法是LL〔1文法吗?
〔3构造C[S]的LL〔1分析表。
4.将文法G[V]改造成为LL<1>的。
〔﹡﹡﹡
G[V]:
V→N|N[E]
E→V|V+E
N→i
5.已知文法:
〔﹡﹡﹡
G[A]:
A→aAa|ε
〔1该文法是LL〔1文法吗?
为什么?
〔2若采用LL〔1方法进行语法分析,如何得到该文法的LL〔1分析表?
〔3若输入符号串"aaaa",请给出语法分析过程。
6.设有文法G[S]为:
〔﹡﹡﹡
A→SdA|S
〔1完成下列算符优先关系表,见下表,并判断G[S]是否为算符优先文法。
表 算符优先关系表
〔2给出句型〔SdSdS的短语、简单短语、句柄、素短语和最左素短语。
〔3给出输入串〔adb#的分析过程。
7.设有文法G[S]为:
〔﹡﹡﹡
A→SdA|S
〔1完成下列算符优先关系表,见下表,并判断G[S]是否为算符优先文法。
表 算符优先关系表
〔2给出句型〔SdSdS的短语、简单短语、句柄、素短语和最左素短语。
〔3给出输入串〔adb#的分析过程。
8.对于文法G[S]:
S→AS|b
A→SA|a
〔1列出所有LR〔0项目;
〔2列出构成文法LR〔0项目集规族。
〔﹡﹡﹡
9.有文法G[S]
S→a|∧|〔T
T→T,S|S该文法是否是LL〔1文法,若不是,请进行改写。
并给出它的分析表。
〔﹡﹡﹡
10.有文法G[S]
〔1S→A
〔2S→B
〔3A→aAb
〔4A→c
〔5B→aBb
〔6B→d
试构造相应的LR〔0项目集规族及相应的分析表。
〔﹡﹡﹡
11.已知文法G[S],其产生式如下:
S→
从G[S]中消除左递归,并为之构造一个非递归预测分析器LL<1>分析表。
请说明在句子>上的分析器的动作。
〔﹡﹡﹡
12.证明下面文法是SLR<1>文法,并构造其SLR分析表。
E→E+T|TT→TF|FF→F*|a|b〔﹡﹡﹡
第五章语法制导翻译技术和中间代码生成
一、多项选择题:
1.中间代码主要有〔。
〔﹡﹡
A.四元式B.二元式C.三元式D.后缀式E.间接三元式
2.在下面的〔语法制导翻译中,采用拉链-回填技术。
〔﹡﹡
A.赋值语句B.goto语句 C.条件语句D.循环语句
3.下列〔中间代码形式有益于优化处理。
〔﹡﹡
A.三元式B.四元式C.间接三元式D.逆波兰表示法E.树形表示法
4.在编译程序中安排中间代码生成的目的是〔。
〔﹡﹡
A.便于进行存储空间的组织B.利于目标代码的优化
C.利于编译程序的移植D.利于目标代码的移植E.利于提高目标代码的质量
5.三地址代码语句具体实现通常有〔表示方法。
〔﹡﹡
A.逆波兰表示B.三元式C.间接三元式D.树形表示E.四元式
二、填空题:
1.中间代码有〔、〔、〔、〔等形式,生成中间代码主要是为了使〔。
2.语法制导翻译既可以用来产生〔代码,也可以用来产生〔指令,甚至可用来对输入串进行〔。
〔﹡
3.当源程序中的标号出现"先引用后定义"时,中间代码的转移地址须持〔时才能确定,因而要进行〔。
〔﹡
4.文法符号的属性有两种,一种称为〔,另一种称为〔。
〔﹡﹡
5.后缀式abc-/所代表的表达式是〔,表达式
〔﹡﹡
6.用一〔辅以〔的办法来表示中间代码,这种表示法称为间接三元式。
〔﹡﹡
三、问答题:
1.给出下列表达式的逆波兰表示〔后缀式:
〔﹡﹡
①a*<-b+c>
②∧
2.写出算术表达式:
A+B*
〔﹡﹡﹡
①四元式序列;
②三元式序列;
③间接三元式序列
3.写出下面算术表达式E值的语义描述:
〔﹡﹡
〔1E→E1+E2
〔2E→0
〔3E→1
4.给出下列表达式的逆波兰表式。
〔﹡﹡
〔1a≤b+c∧a>d∨a+b≠e
〔2a=c∧b=d
〔3〔a*b-c**n+b*〔a+d/e
5.分别写出语句a:
=b*-c+b*-c的四元式、三元式和间接三元式的表示。
〔﹡﹡﹡
6.文法及其翻译方案为:
P:
=bQb{print:
"1”}Q:
=cR{print:
"2”}
Q:
=a{print:
"3”}R:
=Qad{print:
"4”}
当输入串为bccaadadb时,该翻译方案的输出是什么?
〔﹡﹡
7.给定文法G[E]:
E:
=T+E|TT:
=F*T|FF:
=i|
则求i+i+*i的逆波兰表示。
〔﹡﹡
第六章符号表的组织和管理
一、多项选择题:
1.符号表的每一项均包含〔。
〔﹡﹡
A.名字栏B.类型栏C.信息栏D.值栏E.a~d均包含
2.对编译程序所用到的符号表,涉及的操作有〔。
〔﹡﹡
A.填写或更新信息栏容B.填入新名C.给定名字,访问它的有关信息
D.杂凑技术E.线性表和排序二叉树
3.源程序中的错误一般有〔。
〔﹡﹡
A.词法错误B.语法错误C.语义错误D.编译错误 E.违反环境限制的错误
二、填空题:
1.符号表中名字栏容有两种填写方式,它们是〔填写和〔填写。
〔﹡﹡
2.词法分析阶段的错误主要是〔,可通过〔的办法纠正错误。
〔﹡﹡
3.符号表中名字的有关信息在〔和〔过程中陆续填入。
〔﹡
4.在目标代码生成阶段,符号表是〔的依据。
〔﹡
三、简答题:
1.在编译过程中为什么要建立符号表?
〔﹡﹡
2.一个过程的活动记录中一般包含那些数据。
〔﹡﹡
第七章运行时的存储组织与管理
一、多项选择题:
1.下面〔需要在运行阶段分配存储空间。
〔﹡﹡
A.数组B.指针变量 C.动态数组 D.静态变量 E.动态变量
2.栈式动态分配允许〔。
〔﹡﹡
A.递归过程 B.分程序结构 C.动态变量 D.动态数组 E.静态数组
3.动态存储分配可采用的分配方案有〔。
〔﹡﹡
A.队式存储分配 B.栈式存储分配 C.链式存储分配 D.堆式存储分配 E.线性存储分配
4.栈式动态分配与管理因调用而进入过程之后,要做的工作是〔。
〔﹡﹡
A.定义新的活动记录的SP B.保护返回地址
C.传递参数值 D.建立DISPLAY表 E.定义新的活动记录的TOP
5.静态分配不允许程序出现〔。
〔﹡﹡
A.递归过程 B.静态数组 C.可变体积的数据项目 D.待定性质的名字 E.静态变量
6.活动记录包括〔。
〔﹡﹡
A.局部变量 B.连接数据 C.形式单元 D.局部数组的情变量 E.临时工作单元
第八章目标代码生成
一、多项选择题:
1.根据优化所涉及的围,可将优化分为〔。
〔﹡﹡
A.局部优化 B.过程优化 C.全局优化 D.循环优化 E.四元式优化
2.下列优化中,属于循环优化的有〔。
〔﹡﹡
A.强度削弱 B.合并已知量 C.删除无用赋值 D.删除归纳变量 E.代码外提
3.如果a→b是程序流图中的一条边,则由这条回边构成的循环由〔结点组成。
〔﹡﹡
A.a B.b C.有通路到达b的结点
D.有通路到达a且该通路上不经过b的结点 E.有通路到达b且该通路上不经过a的结点
4.采用无环有向图〔DAG,可以实现的优化有〔。
〔﹡﹡
A.合并已知量 B.删除公共子表达式 C.强度削弱 D.删除无用赋值 E.删除归纳变量
5.编译程序的输出结果可以是〔。
〔﹡﹡
A.目标代码 B.汇编语言代码 C.中间代码 D.优化后的中间代码 E.可重定位代码
二、填空题:
1.局部优化是〔围进行的一种优化。
〔﹡
2.在一个基本块,可实行3种优化方法,即合并已知量、〔、〔。
〔﹡﹡
3.优化就是对程序进行各种〔变换,使之能生成更有效的〔。
〔﹡
4.在优化中,可把循环中的〔提到循环外面去,这种方法称为〔。
〔﹡﹡
东北农业大学网络教育学院
编译原理作业题参考答案
第一章编译概述
多项选择题:
1.编译程序各阶段的工作都涉及到〔BC。
〔﹡﹡
A.语法分析B.表格管理C.出错处理D.语义分析E.词法分析
2.编译程序工作时,通常有〔ABCE阶段。
〔﹡
A.词法分析B.语法分析C.中间代码生成D.语义检查E.目标代码生成
填空题:
1.解释程序和编译程序的区别在于〔是否生成目标程序。
〔﹡
2.编译过程通常可分为5个阶段,分别是〔词法分析、〔语法分析、〔中间代码生成、〔代码优化和〔目标代码生成。
〔﹡
3.编译程序工作过程中,第一段输入是〔源程序,最后阶段的输出为〔目标代码生成程序。
〔﹡
4.编译程序是指将〔高级语言编写的程序翻译成〔目标语言程序的程序。
〔﹡
综合题:
1.画出编译程序的总体结构图,简述各部分的主要功能。
〔﹡﹡﹡
解答:
编译程序的总体结构如下图所示:
词法分析程序:
输入源程序,进行词法分析,输出单词符号。
语法分析程序:
在词法分析的基础上,根据语言的语法规则〔方法规则把单词符号串分解成各类语法单位,并判断输入串是否构成语法上正确的"程序"。
中间代码生成程序:
按照语义规则把语法分析程序归约〔或推导出的语法单位翻译成一定形式的中间代码,比如说四元式。
优化程序:
对中间代码进行优化处理。
目标代码生成程序:
把中间代码翻译成目标语言程序。
表格管理模块保存一系列的表格,登记源程序的各类信息和编译各阶段的进展情况。
编译程序各阶段所产生的中间结果都记录在表格中,所需信息多数都需从表格中获取,整个编译过程中都在不断地和表格打交道。
出错处理程序对出现在源程序中的错误进行处理。
此外,编译的各个阶段都可能出现错误。
出错处理程序对发现的错误都及时进行处理。
第二章文法和语言的基本知识
多项选择题:
1.ABC2.ACE3.BCD4.AC5.BC
填空题:
1.文法中的终结符和非终结符的交集是〔空集。
词法分析器交给语法分析器的文法符号一定是〔终结符,它一定只出现在产生式的〔右部。
〔﹡
2.最左推导是指每次都对句型中的〔最左非终结符进行扩展。
〔﹡
3.在语法分析中,最常见的两种方法一定是〔自上而上分析法,另一是〔自下而上分析法。
〔﹡
4.采用〔自上而下语法分析时,必须消除文法的左递归。
〔﹡
5.〔语法树代表推导过程,〔分析树代表归约过程。
〔﹡
6.自下而上分析法采用〔移进、归约、错误处理、〔接受等四种操作。
〔﹡﹡
7.Chomsky把文法分为〔4种类型,编译器构造中采用〔2型和〔3型文法,它们分别产生〔上下文无关语言和〔正规语言语言,并分别用〔下推自动机和〔有限自动机识别所产生的语言。
〔﹡﹡
判断题:
1.正确2.错误3.错误4.错误5.错误
6.错误7.正确8.正确9.错误
简答题
1句柄:
〔﹡
解答:
一个句型的最左直接短语称为该句型的句柄。
2.素短语:
〔﹡﹡
解答:
至少含有一个终结符的素短语,并且除它自身之外不再含任何更小的素短语。
3.语法树:
〔﹡﹡
解答:
满足下面4个条件的树称之为文法G[S]的一棵语法树。
①每一终结均有一标记,此标记为VN∪VT中的一个符号;
②树的根结点以文法G[S]的开始符S标记;
③若一结点至少有一个直接后继,则此结点上的标记为VN中的一个符
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 整理 编译 原理 网上 作业题 1101