编译原理习题及答案(整理后)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一章
1、将编译程序分成若干个“遍”是为了。
b.使程序的结构更加清晰2、构造编译程序应掌握。
a.源程序b.目标语言
c.编译方法
3、变量应当。
c.既持有左值又持有右值4、编译程序绝大多数时间花在上。
d.管理表格
5、不可能是目标代码。
d.中间代码
6、使用可以定义一个程序的意义。
a.语义规则
7、词法分析器的输入是。
b.源程序
8、中间代码生成时所遵循的是- 。
c.语义规则
9、编译程序是对。d.高级语言的翻译
10、语法分析应遵循。
c.构词规则
二、多项选择题
1、编译程序各阶段的工作都涉及到。
b.表格管理c.出错处理2、编译程序工作时,通常有阶段。
a.词法分析b.语法分析c.中间代码生成e.目标代码生成
三、填空题
1、解释程序和编译程序的区别在于是否生成目标程序。
2、编译过程通常可分为5个阶段,分别是词法分析、
语法分析中间代码生成、代码优化和目标代码生成。 3、编译程序工作过程中,第一段输入是源程序,最后阶段的输出为标代码生成程序。
4、编译程序是指将源程序程序翻译成目标语言程序的程序。一、单项选择题
1、文法G:S→xSx|y所识别的语言是。
a. xyx
b. (xyx)*
c.
x n yx n(n≥0) d. x*yx*
2、文法G描述的语言L(G)是指。
a. L(G)={α|S+⇒α , α∈V T*}
b. L(G)={α|S*⇒α, α∈V T*}
c. L(G)={α|S*⇒α,α∈
(V T∪V N*)} d. L(G)={α|S+⇒α, α∈(V T∪V N*)}
3、有限状态自动机能识别。
a. 上下文无关文法
b. 上下文有关文法
c.正规文法
d. 短语文法
4、设G为算符优先文法,G 的任意终结符对a、b有以下关
系成立。
a. 若f(a)>g(b),则a>b
b.若f(a) c. a~b都不一定成立 d. a~b一定成立 5、如果文法G是无二义的,则它的任何句子α。 a. 最左推导和最右推导对应的语法树必定相同 b. 最左推导和最右推导对应的语法树可能不同 c. 最左推导和最右推导必定相同 d. 可能存在两个不同的最左推导,但它们对应的语法树相同 6、由文法的开始符经0步或多步推导产生的文法符号序列 是。 a. 短语 b.句柄 c. 句型 d. 句子 7、文法G:E→E+T|T T→T*P|P P→(E)|I 则句型P+T+i的句柄和最左素短语为。 a.P+T和i b. P和P+T c. i 和P+T+i d.P和T 8、设文法为:S→SA|A A→a|b 则对句子aba,下面是规范推导。 a. S⇒SA⇒SAA⇒AAA⇒aAA⇒abA⇒aba b. S⇒SA⇒SAA⇒AAA⇒AAa ⇒Aba⇒aba c. S⇒SA⇒SAA⇒SAa⇒Sba⇒Aba⇒aba d. S⇒SA⇒Sa⇒SAa⇒Sba⇒A ba⇒aba 9、文法G:S→b|∧(T) T→T,S|S 则FIRSTVT(T) 。 a. {b,∧,(} b. {b,∧,)} c.{b,∧,(,,} d.{b,∧,),,} 10、产生正规语言的文法为。 a. 0型 b. 1型 c. 2型 d. 3型 11、采用自上而下分析,必 须。 a. 消除左递归 b. 消除右递归 c. 消除回溯 d. 提取公共左因子 12、在规范归约中,用来刻画可归约串。 a. 直接短语 b. 句柄 c. 最左素短语 d. 素短语 13、有文法G:E→E*T|T T→T+i|i 句子1+2*8+6按该文法G归约,其值为。 a. 23 B. 42 c. 30 d. 17 14、规范归约指。 a. 最左推导的逆过程 b. 最右推导的逆过程 c. 规范推导 d. 最左归约的逆过程 二、多项选择题 1、下面哪些说法是错误的。 a. 有向图是一个状态转换图 b. 状态转换图是一个有向图 c.有向图是一个DFA d.DFA可以用状态转换图表示 2、对无二义性文法来说,一棵 语法树往往代表了。 a. 多种推导过程 b. 多种最左推导过程 c.一种最左推导过程 d.仅一种推导过程 e.一种最左推导过程 3、如果文法G存在一个句子,满足下列条件之一时,则称该文法是二义文法。 a. 该句子的最左推导与最右推导相同 b. 该句子有两个不同的最左推导 c. 该句子有两棵不同的最右推导 d. 该句子有两棵不同的语法树 e.该句子的语法树只有一个