信阳师范编译原理
并行编译程序
答案是:适合于SIMD和MIMD结构计算机,具有并行处理功能的编译程序
串行编译程序
答案是:适合于SISD结构计算机的编译程序
采用方法
答案是:程序转换,知识工程等
目标语言
答案是:是自动程序设计系统用以表示最后生成的程序的语言
[简答题,10分] 写一文法,使其语言是偶正整数的集合,要求: (1)允许0打头; (2) 不允许0打头
答案是:(1)G[S]=({S,P,D,N},{0,1,2,,,9},P,S) P: S->PD|D P->NP|N D->0|2|4|6|8 N->0|1|2|3|4|5|6|7|8|9 (2)G*S+=(,S,P,R,D,N,Q -,,0,1,2,…,9-,P,S) P: S->PD|P0|D P->NR|N R->QR|Q D->2|4|6|8 N->1|2|3|4|5|6|7|8|9 Q->0|1|2|3|4|5|6|7|8|9
[简答题,10分] 什么是句子? 什么是语言 ?
答案是:(1)设G是一个给定的文法,S是文法的开始符号,如果S x(其中x∈VT*),则称x是文 法的一个句子。 (2)设G[S]是给定文法,则由文法G所定义的语言L(G)可描述为: L(G)={x│S x,x∈VT*}
[简答题,10分] 已知文法 A->aAd| aAb|ε 判断该文法是否SLR(1)文法,若是构造相应分析表,并对输入串ab#给出分析过程
答案是:(1)拓广文法 (0)S->A (1) A->aAd (2)A-> aAb (3)A->ε (2)构造识别活前缀的DFA FOLLOW(A)={d,b,#} 对于状态I0:FOLLOW(A)∩{a}=Ф 对于状态I1:FOLLOW(A)∩{a}=Ф 因为,在DFA中无冲突的现象,所以该文法是SLR(1)文法。 (3)SLR(1)分析表 状态 ACTION GOTO a B d # A 0 S2 r3 r3 r3 1 1 acc 2 S2 r3 r3 r3 3 3 S5 S4 4 r1 r1 r1 5 r2 r2 r2 (4)串ab#的分析过程 步骤 状态栈 符号栈 当前字符 剩余字符串 动作 1 0 # a b# 移进 2 02 #a b # 归约A->ε 3 023 #aA b # 移进 4 0235 #aAb # 归约A-> aAb 5 01 #A # 接受
[填空题,10分] 编译方式与解释方式的根本区别在于()
答案是:是否生成目标代码
[填空题,10分] 若源程序是用高级语言编写的,()是机器语言程序或汇编程序, 则其翻译程序称为()
答案是:目标程序|编译程序
[填空题,10分] 编译程序的工作过程一般可以划分为词法分析,语法分析,语义分析,中间代码 生成,代码优化等几个基本阶段,同时还会伴有(),()
答案是:表格处理|出错处理
规格说明
答案是:以某种方式告知计算机所需要的是什么样的程序,要求这一程序干什么
解释程序
答案是:按解释方式进行翻译的翻译程序
继承属性
答案是:若产生式右部符号B的属性值是根据左部非终结符的属性值或者右部其它符号的属性值决定的, 则B的属性为继承属性
综合属性
答案是:若产生式左部的单非终结符A的属性值由右部各非终结符的属性值决定,则A的属性称为综合属
[简答题,10分] 设文法G(S): S→(L)|a S|a L→L,S|S (1) 消除左递归和回溯;(2) 计算每个非终结符的FIRST和FOLLOW; (3) 构造预测分析表
答案是:(1) S→(L)|aS’ S’→S|ε L→SL’ L’→SL’|ε 评分细则:消除左递归2分,提公共因子2分。 (2) FIRST和FOLLOW FIRST)S)={(,a} FOLLOW(S)={#,,,)} FIRST(S’)={,a,ε} FOLLOW(S’)={#,,,)} FIRST(L)={(,a} FOLLOW(L)={ )} FIRST(L’)={,,ε} FOLLOW(L’〕={ )}
[简答题,10分] 已知文法G[E]: E→ET+|T T→TF* | F F→F^ | a 试证:FF^^*是文法的句型,指出该句型的短语、简单短语和句柄
答案是:该句型对应的语法树如下:该句型相对于E的短语有FF^^*;相对于T的短语有FF^^*,F; 相对于F的短语有F^;F^^;简单短语有F;F^;句柄为F.
[简答题,10分] 已知文法 G(E) E →T|E+T T→F|T *F F →(E)|i (1)给出句型(T *F+i)的最右推导; (2)给出句型(T *F+i)的短语、简单短语、句柄、素短语、最左素短语。
答案是:1) 最右推导:E ->T->F->(E)->(E + T)->(E + F)->(E + i)->(T+i)->(T*F+i) (2) 短语:(T*F+i) ,T*F+i ,T*F,i 简单短语:T*F,i 句柄:T*F 素短语:T*F,i 最左素短语:T*F
对编译程序所用到的符号表,涉及的操作有 A.填写或更新信息栏内容 B.填入新名 C.给定名字,访问它的有关信息 D.杂凑技术
答案是:参考答案:ABC
符号表的每一项均包含 A.名字栏 B.类型栏 C.信息栏 D. 值栏
答案是:参考答案:AC
三地址代码语句具体实现通常有 表示方法 A.逆波兰表示 B.三元式 C.间接三元式 D.树形表示
答案是:参考答案:BC
在编译程序中安排中间代码生成的目的 是 A.便于进行存储空间的组织 B.利于目标代码的优化 C.利于编译程序的移植 D.利 于目标代码的移植
答案是:参考答案:BD
程序所需的数据空间在程序运行前可确定,称为 () 管理技术 A.动态存储 B.栈式存储 C.静态存储 D.堆式存储
答案是:参考答案:C
在目标代码生成阶段,符号表用于 A.目标代码生成 B.语义检查 C.语法检查 D.地址分配
答案是:参考答案:D
编译程序使用 区别标识符的作用域 A.说明标识符的过程或函数名 B.说明标识符的过程或函数的静态层次 C.说明标识符的过程或函数的动态层次 D.标识符的行号
答案是:参考答案:B
下列关于标识符和名字叙述中,正确的是 A.标识符有一定的含义 B.名字是一个没有意义的字符序列 C.名字有确切的属性 D. a~c都不正确
答案是:参考答案:C
过程信息表不包含 A.过程入口地址 B.过程的静态层次 C.过程名 D.过程参数信息
答案是:参考答案:B
终结符具有 属性 A.传递 B.继承 C.抽象 D.综合
答案是:参考答案:D
下列 中间代码形式有益于优化处理 A.三元式 B.四元式 C.间接三元式 D.逆波兰表示法
答案是:参考答案:BC
自上而下的语法分析方法有 A.算符优先分析法 B.LL(1)分析法 C.SLR(1)分析法 D.LR(0)分析法
答案是:参考答案:ACD
对LR分析器来说,存在 等分析表的构造方法 A.LALR B.LR(0) C.SLR(1) D.SLR(0)
答案是:参考答案:ABCD
就文法的描述能力来说,有 A.SLR(1))LR(1 B.LR(1))SLR(1 C.LR(0))LR(1 D.LR(1))无二义文
答案是:参考答案:ABCD
四元式表示法的优点为 A.不便于优化处理,但便于表的更动 B.不便于优化处理,但节省存储空间 C.便于优化处理,也便于表的更动 D.便于表的更动,也节省存储空间
答案是:参考答案:C
表达式(┓A∨B)∧(C∨D)的逆波兰表示为 A.┓AB∨∧CD∨ B.A┓B∨CD∨∧ C.AB∨┓CD∨∧ D. A┓B∨∧CD∨
答案是:参考答案:D
后缀式ab+cd+/可用表达式 来表示 A.a+b/c+d B.(a+b)/(c+d) C.a+b/(c+d) D.a+b+c/d
答案是:参考答案:B
四元式之间的联系是通过 实现的 A.指示器 B.临时变量 C.符号表 D.程序变量
答案是:参考答案:B
中间代码生成所依据的是 A.语法规则 B.词法规则 C.语义规则 D.等价变换规则
答案是:参考答案:C
一个 () 指明了在分析过程中的某时刻所能看到产生式多大一部分 A.活前缀 B.前缀 C.项目 D.项目集
答案是:参考答案:C
对LR分析表的构造,有可能存在 动作冲突 A.移进 B.归约 C.移进/归约 D.归约/归约
答案是:参考答案:CD
每一项ACTION[S,a]所规定的动作包括 A.移进 B.比较 C.接受 D.归约
答案是:参考答案:ABCD
LR分析器核心部分是一张分析表,该表包括 等子表 A.LL(1)分析 B.优先关系 C.GOTO D.ACTION
答案是:参考答案:CD
一个LR分析器包括 A.一个总控程序 B.一个项目集 C.一个活前缀 D.一张分析表
答案是:参考答案:AD
在LR(0)的ACTION子表中,如果某一行中存在标记“rj”的栏,则 A.该行必定填满rj B.该行未填满rj C.其他行也有rj D.goto子表中也有rj
答案是:参考答案:A
若项目集Ik含有A→α·,则在状态k时,仅当面临的输入符号a∈FOLLOW(A)时,才采取“A→α·”动作的一定是 A.LALR文法 B.LR(0)文法 C.LR(1)文法 D.SLR(1)文法
答案是:参考答案:D
若a为终结符,则A→α·aβ为 () 项目 A.归约 B.移进 C.接受 D.待约
答案是:参考答案:B
词法分析器作为独立的阶段使整个编译程序结构更加简洁、明确,因此, A.词法分析器应作为独立的一遍 B.词法分析器作为子程序较好 C.词法分析器分解为多个过程,由语法分析器选择使用 D.词法分析器并不作为一个独立的阶段
答案是:参考答案:B
词法分析器的输出结果是 A.单词的种别编码 B.单词在符号表中的位置 C.单词的种别编码和自身值 D.单词自身值
答案是:参考答案:C 您
词法分析所依据的是 A.语义规则 B.构词规则 C.语法规则 D.等价变换规则
答案是:参考答案:B
在下面的 语法制导翻译中,采用拉链-回填技术 A.赋值语句 B..goto语句 C.条件语句 D.循环语句
答案是:参考答案:BCD
中间代码主要有 A.四元式 B.二元式 C.三元式 D.后缀式
答案是:参考答案:ACD
对正规文法描述的语言,以下 ()有能力描述它。 A.0型文法 B.1型文法 C.上下文无关文法 D.右线性文法
答案是:参考答案:ABCD
自下而上的语法分析中,应从 开始分析。 A.句型 B.句子 C.以单词为单位的程序 D.文法的开始符
答案是:参考答案:BC
规范归约指 A.最左推导的逆过程 B.最右推导的逆过程 C.规范推导 D.最左归约的逆过程
答案是:参考答案:B
有文法G:E→E*T|T T→T+i|i 句子1+2*8+6按该文法G归约,其值为 A.23 B.42 C.30 D.17
答案是:参考答案:B
在规范归约中,用 () 来刻画可归约串 A.直接短语 B.句柄 C.最左素短语 D.素短语
答案是:参考答案:B
采用自上而下分析,必须 A.消除左递归 B.消除右递归 C.消除回溯 D.提取公共左因子
答案是:参考答案:C
产生正规语言的文法为 A.0型 B.1型 C.2型 D.3型
答案是:参考答案:D
有一文法G:S→AB A→aAb|ε B→cBd|ε 它不产生下面 () 集合 A.{anbmcndm |n,m≥0} B.{anbncmdm |n,m>0} C.{anbmcmdn |n,m≥0} D.{anbncmdm |n,m
答案是:参考答案:AC
如果文法G存在一个句子,满足下列条件 ()之一时,则称该文法是二义文法 A.该句子的最左推导与最右推导相同 B.该句子有两个不同的最左推导 C.该句子有两棵不同的最右推导 D.该句子有两棵不同的语法树
答案是:参考答案:BCD
对无二义性文法来说,一棵语法树往往代表了 A.多种推导过程 B.多种最左推导过程 C.一种最左推导过程 D.仅一种推导过程
答案是:参考答案:AC
下面哪些说法是错误的 A.有向图是一个状态转换图 B.状态转换图是一个有向图 C.有向图是一个DFA D.DFA可以用状态转换图表示
答案是:参考答案:AC
文法G:S→b|∧(T) T→T,S|S 则 FIRSTVT(T)() A.{b,∧,(} B. {b,∧,)} C.{b,∧,(,,} D.{b,∧,(,,}
答案是:参考答案:C
文法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
答案是:参考答案:B
由文法的开始符经0步或多步推导产生的文法符号序列是 A.短语 B.句柄 C.句型 D.句子
答案是:参考答案:C
如果文法G是无二义的,则它的任何句子α A.最左推导和最右推导对应的语法树必定相同 B.最左推导和最右推导对应的语法树可能不同 C.最左推导和最右推导必定相同 D.可能存在两个不同的最左推导,但它们对应的语法树相同
答案是:参考答案:A
设G为算符优先文法,G的任意终结符对a、b有以下关系成立 A.若f(a)>g(b),则a>b B.若f(a) C.a~b都不一定成立 D. a~b一定成立
答案是:参考答案:C
有限状态自动机能识别() A.上下文无关文法 B.上下文有关文法 C.正规文法 D.短语文法
答案是:参考答案:C
令∑={a,b},则∑上所有以b开头,后跟若干个ab的字的全体对应的正规式为 A.b(ab)* B.b(ab)+ C.(ba)*b D.(ba)+ b
答案是:参考答案:ABD
在词法分析中,能识别出 A.基本字 B.四元式 C.运算符 D.逆波兰式
答案是:参考答案:AC
编译程序工作时,通常有 () 阶段 A.词法分析 B.语法分析 C.中间代码生成 D.中间代码生成
答案是:参考答案:ABCD
编译程序各阶段的工作都涉及到 A.语法分析 B.表格管理 C.出错处理 D.语义分析
答案是:参考答案:BC
文法G描述的语言L(G)是指 A.L(G)={α|S+ α , α∈VT*} B.L(G)={α|S** α, α∈VT*} C.L(G)={α|S** α,α∈(VT∪VN*)} D.L(G)={α|S+ α, α∈(VT∪VN*
答案是:参考答案:A
文法G:S→xSx|y所识别的语言是 A.xyx B.(xyx)* C.xnyxn (n≥0) D.x*yx*
答案是:参考答案:C
语法分析应遵循 A.语义规则 B.语法规则 C.构词规则 D.等价变换规则
答案是:参考答案:C
编译程序是对() A.汇编程序的翻译 B.高级语言程序的解释执行 C.机器语言的执行 D.高级语言的翻译
答案是:参考答案:D
中间代码生成时所遵循的是 - A.语法规则 B.词法规则 C.语义规则 D.等价变换规则
答案是:参考答案:C
词法分析器的输入是 A.单词符号串 B.源程序 C.语法单位 D.目标程序
答案是:参考答案:B
栈式动态分配与管理因调用而进入过程之后,要做的工作是 A.定义新的活动记录的SP B.保护返回地址 C.传递参数值 D.传递参数值
答案是:参考答案:ABD
动态存储分配可采用的分配方案有 A. 队式存储分配 B.栈式存储分配 C.链式存储分配 D.堆式存储分配
答案是:参考答案:BD
栈式动态分配允许 A.递归过程 B.分程序结构 C.动态变量 D.动态数组
答案是:参考答案:ABD
下面 需要在运行阶段分配存储空间 A.数组 B. 指针变量 C.动态数组 D.动态变量
答案是:参考答案:CD
使用 可以定义一个程序的意义 A.语义规则 B.词法规则 C.产生规则 D.词法规则
答案是:参考答案:A
不可能是目标代码。 A.汇编指令代码 B.可重定位指令代码 C.绝对指令代码 D.中间代码
答案是:参考答案:D
编译程序绝大多数时间花在 上 A.出错处理 B.词法分析 C.目标代码生成 D.管理表格
答案是:参考答案:D
变量应当 A.持有左值 B.持有右值 C.既持有左值又持有右值 D.既不持有左值也不持有右值
答案是:参考答案:C
构造编译程序应掌握 A.源程序 B.目标语言 C.编译方法 D.以上三项都是
答案是:参考答案:D
设有文法G[I]:I→I1|I0|Ia|Ic|a|b|c,下列符号串中是该文法的句子的有_____①ab0 ②a0c01 ③aaa ④bc10 A.① B.②③④ C.③④ D.①②③④
答案是:参考答案:B
下列优化中,属于循环优化的有 A.强度削弱 B.合并已知量 C.删除无用赋值 D.删除归纳变量
答案是:参考答案:AB
根据优化所涉及的范围,可将优化分为 A.局部优化 B.过程优化 C.全局优化 D.循环优化
答案是:参考答案:ACD
活动记录包括 A.局部变量 B.连接数据 C.形式单元 D.局部数组的内情变量
答案是:参考答案:ABCD
静态分配不允许程序出现 A.递归过程 B.静态数组 C.可变体积的数据项目 D.待定性质的名字
答案是:参考答案:ACD
文法所描述的语言是_________的集合 A.文法的字汇表V中符号组成的符号串 B.文法的字汇表V中终结符号组成的符号串 C.由文法开始符推导的符号串 D.由文法开始符推导的终结符号串
答案是:参考答案:D
在编译程序采用的优化方法中, _____________________是在循环语句范围内进行的。①合并已知常量 ②删除多余运算 ③删除归纳变量 ④强度削弱 ⑤代码外提 A.①④ B.①⑤ C.①④⑤ D.③④⑤
答案是:参考答案:D
LR(0)分析法中,语法分析栈中存放的状态是识别规范句型_________的DFA状态 A.前缀 B.活前缀 C.LR(0)项目 D.句柄
答案是:参考答案:B
程序的基本块是指_________ A.不含无条件转移语句的程序段 B.不含条件转移语句的程序段 C.不含停机的语句程序段 D.仅含有一个入口语句和一个出口语句的顺序程序
答案是:参考答案:D
LL(1)文法中第一个L表示______ A.最左推导 B.最左归约 C.从左到右识别输入串 D.规范归约
答案是:参考答案:C
生成能被5整除的正整数的文法G[Z]是_______。 A.G(Z):Z→AC,A→BA|B,B→0|1|2|||9,C→0|5 B.G(Z):Z→AC,A→BA|ε,B→0|1|2|||9,C→0|5 C.G(Z):Z→AC|5,A
答案是:参考答案:C
对非确定有穷自动机NFA正确的说法是_________ A.只有一个开始状态 B.是一个四元组 C.可以使用状态转换矩阵来表示 D.总可以找到一个确定有穷自动机DFA,使得它们接受相同的符号串集
答案是:参考答案:CD
常见的自底而上语法分析方法有_____________ A.递归下降分析 B.算符优先分析 C..LL(1)预测分析 D.LR分析
答案是:参考答案:BD
常见的自上而下语法分析方法有_________ A.递归下降分析 B.算符优先分析 C. LL(1)预测分析 D. LR分析
答案是:参考答案:AC
若G和G.是两个不同的文法,如果它们是等价的,那么______ A.G.必须超出G所定义语言的范围 B.G.应缩小G所定义语言的范围 C.G和G.描述的语言相同 D.G.既不超出G所定义语言的范围,也不缩小G所定义语言的范围
答案是:参考答案:CD
算符文法是指_______的文法。 ①没有形如U→...VW...的规则(U,V,WWVN) ②VT中任意两个符号之间至多存在一种算符优先关系 ③没有相同右部的规则 ④没有形如U→ε的规则 A.① B.①和② C.①、②和③ D.①
答案是:参考答案:A
代码生成阶段的主要任务是 A.把高级语言翻译成汇编语言 B.把高级语言翻译成机器语言 C.把中间代码变换成依赖具体机器的目标代码 D.把汇编语言翻译成机器语言
答案是:参考答案:C
代码优化的目的是 A.节省时间 B.节省空间 C.节省时间和空间 D.把编译程序进行等价交换
答案是:参考答案:C
常用的中间代码形式不含 A.三元式 B.四元式 C.逆波兰式 D.语法树
答案是:参考答案:D
词法分析的任务是 A.识别单词 B.分析句子的含义 C.识别句子 D.生成目标代码
答案是:参考答案:A
扫描器所完成的任务是从字符串形式的源程序中识别出一个个具有独立含义的最小语法单位即 A.字符 B.单词 C.句子 D.句型
答案是:参考答案:B
符号串dbb是给定文法G[A]:A→dBC,B→aB| ε,C→bC|b的句子,试问其活前缀包括________ A.ε B.d C.db D.dbb
答案是:参考答案:AB
已知文法G[Z]:Z→U0|V1,U→Z1|1,V→Z0|0,该文法是________ A.3型文法 B.右线性文法 C.左线性文法 D.正规文法
答案是:参考答案:ACD
一个文法是LR(0)文法一定也是______________ A.SLR(1) B.LR(1) C.LALR(1) D.LR(2)
答案是:参考答案:ABD
已知文法G[E]:E→E+T|T,T→T*F|F,F→(E)|i, 下列_________是句型(i1+T)*i2的短语 A.i1+T B.(i1+T) C.i2 D.T
答案是:参考答案:ABC
下推自动机识别的语言是 A.0型语言 B.1型语言 C.2型语言 D.3型语言
答案是:参考答案:C
一个句型中称为句柄的是该句型的最左() A.非终结符号 B.短语 C.句子 D.直接短语
答案是:参考答案:D
编译程序前三个阶段完成的工作是() A.词法分析、语法分析和代码优化 B.代码生成、代码优化和词法分析 C.词法分析、语法分析、语义分析和中间代码生成 D.词法分析、语法分析和代码优化
答案是:参考答案:C
语言是() A.句子的集合 B.产生式的集合 C.符号串的集合 D.句型的集合
答案是:参考答案:A
中间代码生成时所依据的是 A.语法规则 B.词法规则 C.语义规则 D.等价变换规则
答案是:参考答案:C
将编译程序分成若干个“遍”是为了__ A.提高程序的执行效率 B.使程序的结构更加清晰 C.利用有限的机器内存并提高机器的执行效率 D.利用有限的机器内存但降低了机器的执行效率
答案是:参考答案:B
目前为: 2/2 页  首页   上页 下页 尾页