当前位置:文档之家› 编译原理试卷

编译原理试卷

编译原理试卷
编译原理试卷

一、判断对错:(对√;错 ;每小问2分共24分)

<1>算符优先分析法是一种规范归约分析法。( )

<2>若文法Gs中不含形如T→…BD…的产生式,T、B、D∈V N,则称Gs为算符文法。(√)

<3>若一个语言是有穷集合,则定义该语言的文法一定是递归的。( )

<4>若两个正规式所表示的正规集相同,则认为二者是等价的。(√)

<5>LR分析法是一种规范归约分析法。(√)

<6>一个LR(0)项目集I={B →α.bβ, P →aA.},则说I中含有“移进—归约”冲突。(√)

<7>SLR(1)文法是无二义性文法。(√)

<8>消除左递归后的文法一定是LL(1)文法。( )

<9>对任何编译程序而言,代码优化是必不可少的。( )

<10>编译程序和具体的机器无关。( )

<11>在自动机的概念中,终态和非终态是可区别的。(√)

<12>逆波兰式ab+cd+*所代表的中缀表达式是:(a+b)*(c+d)(√)

1. 一个语言有文法是不惟一的。(√)

2. 若一个语言是无穷集合,则定义该语言的文法一定是递归的。(√)

3. 紧跟在条件转移语句后面的语句是基本块的入口语句。(√)

4. 算符优先分析法是一种规范归约分析法。( )

5. 自下而上语法自导翻译的特点:当栈顶形成句柄时,在归约的同时执行其语义动作。(√)

6. LR(0)文法、SLR(1)文法都是无二义性文法。(√)

7.K、∑分别表示有限状态集和有穷字母表, DFA M的转换函数f是一个从K ?∑到K的单值映射。(√)

8. 对任何编译程序而言,代码优化是必不可少的。( )

9. 直接短语是某规则的右部,它对应简单子树叶结点从左到右排列形成的符号串。(√)

10. 两个有穷自动机等价是指它们的状态数和有向弧数相等。( )

11. 一个LR(0)项目集为:I={A→α.bβ, D→β.},则说I中含有“移进--归约”冲突。

(√)

12. 若两个正规式所表示的正规集相同,则认为二者是等价的。(√)

13. 无左递归的文法是LL(1)文法。( )

14. 逆波兰式abcde/+*+所代表的中缀表达式是:a+b*(c+d/e)(√)

15. 编译程序结构中,中间代码优化及目标代码生成两个阶段和具体的机器有关。( )

16. LALR分析法中,同心集的合并不会产生“移进--归约”冲突。(√)

<1>算符优先分析法是一种规范归约分析法。(错)

<2>若文法Gs中不含形如T→…BD…的产生式,T、B、D∈V N,则称Gs为算符文法。(对)

<3>若一个语言是有穷集合,则定义该语言的文法一定是递归的。(错)

<4>若两个正规式所表示的正规集相同,则认为二者是等价的。(对)

<5>LR分析法是一种规范归约分析法。(对)

<6>一个LR(0)项目集I={B →α.bβ, P →aA.},则说I中含有“移进—归约”冲突。(对)

<7>SLR(1)文法是无二义性文法。(对)

<8>消除左递归后的文法一定是LL(1)文法。(错)

<9>对任何编译程序而言,代码优化是必不可少的。(错)

<10>编译程序和具体的机器无关。(错)

二、<1>将下图所示的NFA确定化。(状态转换矩阵4分;状态转换图2分)

解:<1> 状态转换矩阵4分状态转换图2分

<2>给出语言L={ d a n b | n≥1}相应的文法。

G A:A → dBb G A:A → dB

B→ aB |a B → aB | ab

三、①编译程序的工作过程一般划分为五个基本阶段: B;D 、语义分析和中间代码生成、代码优化和目标代码生成。

A.出错处理

B.词法分析

C.表格管理

D.语法分析

②已知文法G E:E→E+T | T T→T*F | F F→(E) | b 那么,该文法终结符集合

V T= A;C ,G E称2型文法或上下文无关文法。

A. {+,(,),*,b}

B. {+,(,),*,E}

C. {+,*,(,),b}

D. {E,T,F}

③已知文法G E:E→E+T | T T→T*F | F F→(E) | b 那么,该文法的非终结符集

V N= B ,G E称2型文法或上下文无关文法。

A. {+,(,),*,b}

B. {E,T,F}

C. {+,*,(,),b}

D. {E,T,F,*,+}

④文法用于描述语言的语法结构,它由如下四个部分组成: A;C;D 和文法开始符号。

A.文法终结符集

B.字母数字串

C. 文法非终结符集

D.文法产生式集

⑤一个文法被称为是二义性的,如果 A , D 。

A.文法的某一个句子有两个以上的最右或最左推导。

B.文法的预测分析表中有多重入口。

C.文法的某个LR(0)项目集中有冲突项目。

D.文法的某一个句子有两棵以上不同的语法树。

⑥程序设计语言的单词符号一般可分为五种,它们是保留字、 A;D 及运算符和定界符。

A.常数

B.表达式

C.注解

D.标识符

⑦设有一个LR(0)项目集I={A→β.bδ, B→β. ,D→δ.},I中存在冲突项目,

它们是 A;D 。

A.“移进-归约”冲突

B. “移进-接受”冲突

C. “移进-待约”冲突

D. “归约-归约”冲突

⑧一个文法的SLR(1)方法和和其相应的LR(0)方法的状态数 A 。

A.相同

B.不相同的

C.前者大于后者

D.后者大于前者

1.编译程序的工作过程一般划分为五个基本阶段:词法分析、 B D 、中间代码优化、目标代码生成。

A.出错处理

B.语法分析

C.表格管理

D.语义分析和中间代码生成

2.识别某文法所有LR(0)项目集簇的DFA中,若项目集k中含有项目“A→δ.”,且仅当输入符号a∈FOLLOW(A)时,才用规则“A →δ”归约的语法分析方法是 D 。

A.LALR分析法B.LR(0)分析法

C.LR(1)分析法D.SLR(1)分析法

3.程序设计语言的单词符号一般可分为五种,它们是常数、 C D 及运算符和定界符。

A.注解

B.表达式

C.标识符

D.保留字

4.文法用于描述语言的语法结构,它由如下四个部分组成: A C D 和文法开始符号。

A.文法终结符集

B.字母数字串

C. 文法非终结符集

D.文法产生式集5.一个文法被称为是二义性的,如果 A C 。

A.文法的某一个句子有两个以上的最右或最左推导。

B.文法的预测分析表中有多重入口。

C.文法的某一个句子有两棵以上不同的语法树。

D.文法的某个LR(0)项目集中有冲突项目。

6.已知文法G B:B→B+T | T T→T*F | F F→(B) | b 那么,该文法终结符集合

V T= A B , G E称2型文法或上下文无关文法。

A. V T={+,*,(,),b}

B. V T={ b,(, +,* ,)}

C. V T={B,T,F}

D. V T={B,T,F,+,*,(,b,)} 7.在动态存储分配时,可以采用的分配方法有 B C 。

A.分时动态存储分配

B.栈式动态存储分配

C. 堆式动态存储分配

D.最佳动态存储分配8.设有一个LR(0)项目集I={A→β.dδ;A→b.Bδ; B→βd. ;D→dB. },I中存在冲突项目,

它们是 A B 。

A.“移进-归约”冲突

B.“归约-归约”冲突

C. “移进-待约”冲突

D. “移进-接受”冲突9.在编译程序采用的优化方法中, B C D 是在循环语句范围内进行的。

A. 删除多余运算

B.代码外提

C. 删除归纳变量

D.强度消弱

10.编译程序生成的目标代码通常有3种形式,它们是 A C D 。

A.能够立即执行的机器语言代码

B.中间语言代码

C.汇编语言程序

D.待装配的机器语言代码

①编译程序的工作过程一般划分为五个基本阶段: BD 、语义分析和中间代码生成、

代码优化和目标代码生成。

A.出错处理

B.词法分析

C.表格管理

D.语法分析

②已知文法G E:E→E+T | T T→T*F | F F→(E) | b 那么,该文法终结符集合V T= AC ,G E称2型文法或上下文无关文法。

A. {+,(,),*,b}

B. {+,(,),*,E}

C. {+,*,(,),b}

D. {E,T,F}

③已知文法G E:E→E+T | T T→T*F | F F→(E) | b 那么,该文法的非终结符集V N=

B ,G E称2型文法或上下文无关文法。

A. {+,(,),*,b}

B. {E,T,F}

C. {+,*,(,),b}

D. {E,T,F,*,+}

④文法用于描述语言的语法结构,它由如下四个部分组成: ACD 和文法开始符号。

A.文法终结符集

B.字母数字串

C. 文法非终结符集

D.文法产生式集

⑤一个文法被称为是二义性的,如果 D 。

A.文法的某一个句子有两个以上的最右或最左推导。

B.文法的预测分析表中有多重入口。

C.文法的某个LR(0)项目集中有冲突项目。

D.文法的某一个句子有两棵以上不同的语法树。

⑥程序设计语言的单词符号一般可分为五种,它们是保留字、 AD 及运算符和定界符。

A.常数

B.表达式

C.注解

D.标识符

⑦设有一个LR(0)项目集I={A→β.bδ, B→β. ,D→δ.},I中存在冲突项目,

它们是 AD 。

A.“移进-归约”冲突

B. “移进-接受”冲突

C. “移进-待约”冲突

D. “归约-归约”冲突

⑧一个文法的SLR(1)方法和和其相应的LR(0)方法的状态数 A 。

A.相同

B.不相同的

C.前者大于后者

D.后者大于前者

四、计算题(共10分;画出语法树4分;其余按要求分别得:1分+1分+2分+2分)

对于如下文法G B:

B → B + D| D

D→ D * F| F 给出句型D + D *d+d 的最左素短语、句柄、

F→ ( B ) | d 所有直接短语、短语。

解:

已知NFA如下图所示。(8分=6分+2分)

<1>确定化。(状态转换矩阵4分;状态转换图2分) <2>写出和其等价的右线性文法。解:<1> 计算出DFA的状态转换矩阵4分;画出相应的状态转换图2分

<2>和其等价的右线性文法为:

G A:A → dA | bB | b A → dA | bA | bB | B A代表结点1

B → bB | dA | b B → b

C | b B代表结点2

按确定化后的DFA构造的结果;按NFA构造的结果

对于文法G E:(共8分:语法树2分;其余按要求分别得1分、1分、2 分、2分)

E → E + B| B

B→ B * F| F 给出句型B + B * b + b 的最左素短语、句柄、

F→ ( E ) | b 直接短语和所有短语。

解:

五、1 给出以下表达式的三地址指令(或四元式序列):(8分)

d + b * d + b / m * ( m - b*d + 2 )

解:四元式序列为 (三地址指令略)

(*, b , d , T1)(+, d , T1 , T2)(/, b , m , T3)(*, b , d , T4)

(-, m , T4, T5) (+,T5, 2,T6) (*, T3,T6,T7) (+,T2,T7,T8)

2 ①给出以下表达式的三地址指令(即四元式序列):(8分=3分+3分+2分)

d + b *d+d* ( d + b * d )

②写出四种以上常用的代码优化技术?

解:①四元式序列为:

1 (*, b , d , T1)

2 (+, d , T1 , T2)

3 (*, b , d , T3)

4 (+, d , T3 , T4)

5 (*, d , T4 , T5)

6 (+, T2 , T5, T6)

上述中间代码可以采用的优化措施有:合并(或称删除)公共子表达式即合并公共四元式

1和3合并 4中T3改为T1 2和4合并 5中T4改为T2 删除四元式3和4

1 (*, b , d , T1)

2 (+, d , T1 , T2)

3 删除

4 删除

5 (*, d , T2 , T5)

6 (+, T2 , T5, T6)

②常用的代码优化技术有:循环上的优化包括:代码外提;强度削弱;删除归纳变量等

基本块上的优化包括:合并公共子表达式;合并常数等六、综合题(每小题4分,共32分。若缺少必要的计算或分析步骤,扣适当的分数)

已知文法G S:S → dDb 提示:.ε=ε.=.且|ε|=0

D → aD | ε

①求每个非终结符的First集、Follow集。求每条规则的Select集,判定是LL(1)文法。

②构造G S的递归下降分析程序。

③构造G S的预测分析表。

④给出字符串daabb的LL(1)分析过程。

⑤构造识别G S拓广文法的所有规范句型活前缀的DFA。

⑥构造SLR(1)分析表。

⑦G S是LR(0)文法吗?G S是SLR(1)文法吗?为什么?

⑧给出字符串daab的SLR(1)分析过程。

解:①每个非终结符的First集、Follow集:

每条产生式的Select集,判断该文法是否为LL(1)文法。

Select(S→dDb)={ d }

Select(D → aD)={ a } <1>

Select(D →ε)={ b } <2>

因为 <1>式∩ <2>式 = Φ,因此,G S是LL(1)文法。

②递归下降分析器:Read()函数读一个单词到全局变量SYM中

ERROR()出错处理;SKIP空操作

Main()函数;略

S( ){ if sym=’d’ then {read(); D(); If sym=’b’ then read();}

Else Error() }

D( ){ if sym=’a’ then { read(); D()}

Else if sym=’b’ then skip;

Else Error();}

③构造G S的预测分析表如下:

④分析栈输入流动作

#S daabb# dDb

#bDd daabb# 匹配

#bD aabb# aD

#bDa aabb# 匹配

#bD abb# aD

#bDa abb# 匹配

#bD bb# D →ε

#b bb# 匹配

# b# 出错

⑤识别G S拓广文法的所有规范句型活前缀的DFA构造如下:

说明:产生式编号可以不从1开始,但是和归约符r的下标必须一致;

SLR(1)表中的行可以任意排列,但是必须和项目集编号一致。

⑥ SLR(1)分析表构造如下:

⑦显然项目集I2、I4中有“移进—归约”冲,G S不是LR(0)文法。

因为SLR(1)分析表中无多重入口,所以G S是SLR(1)文法。

⑧字符串daab的SLR(1)分析过程如下:

状态栈符号栈输入流动作

0 # daab# S2

02 #d aab# S4

024 #da ab# S4

0244 #daa b# r4

02446 #daaD b# r3

0246 #daD b# r3

023 #dD b# S5

0235 #dDb # r2

01 #S # OK

已知文法G D:D → aD | dAb (共40分,每小题5分)

A→ d A | ε提示:.ε=ε.=.且|ε|=0

①求每个非终结符的First集、Follow集。求每条规则的Select集,判定是LL(1)文法。

②构造G D的递归下降分析程序。

③构造G D的预测分析表。

④给出字符串addb的LL(1)分析过程

⑤构造识别G D拓广文法的所有规范句型活前缀的自动机。

⑥构造SLR(1)分析表。

⑦G D是LR(0)文法吗?G D是SLR(1)文法吗?G D是LL(1)文法吗?为什么?

⑧给出字符串addbb的SLR(1)分析过程。

解:①每个非终结符的First集、Follow集:

每条产生式的Select集,判断该文法是否为LL(1)文法。

Select(D→d Db)={ d } <1> Select(D→ a D)={ a } <2>

Select(A→ d A)={ d } <3> Select(A→ε ) = { b } <4>

因为: <1>式∩ <2>式= Φ; <3>式∩ <4>式= Φ 因此,G D是LL(1)文法。

②递归下降分析程序构造如下:(1分+2分+2分)

Main( ) /* Read函数表示把输入流首符读入变量SYM中*/ {Read( ); D( ); /* SYM存放输入流首符的全局变量*/

if SYM=’#’ then /* Write为输出函数;Skip为空操作*/

write(“分析成功!”) /* Error 出错处理程序*/

else write(“失败…”) }/*可以使用其它符合标识符定义规则的名称*/

D( )

{ if SYM=’a’ then {Read; D()}

else if SYM=’d’ then

{Read(); A(); if SYM=’b’ then Read()

Else Error(); }

Else Error();

}

A( )

{ if SYM=’d’ then {Read(); A(); }

Else if SYM=’b’ then Skip

Else Error();

}

③构造G D的预测分析表如下:

④字符串addb的LL(1)分析过程

分析栈输入流动作

#D addb# 替换D→aD

#Da addb# 匹配[a, a]

#D ddb# 替换D→dAb

#bAd ddb# 匹配[d, d]

#bA db# 替换A→dA

#bAd db# 匹配[d, d]

#bA b# 替换A→ε

#b b# 匹配[b, b]

# # OK

⑤识别G D拓广文法的所有规范句型活前缀的DFA构造如下:

说明:产生式编号可以不从1开始,但是和归约符r的下标必须一致;

SLR(1)表中的行可以任意排列,但是必须和项目集编号一致。

⑥ SLR(1)分析表构造如下:

⑦显然项目集I3、I6中有“移进—归约”冲突,G D不是LR(0)文法。

因为SLR(1)分析表中无多重入口,所以G D是SLR(1)文法。

⑧字符串addbb的SLR(1)分析过程如下:

状态栈符号栈输入流动作

0 # addbb# S2

02 #a ddbb# S3

023 #ad dbb# S6 0236 #add bb# r5 02368 #addA bb# r4 0235 #adA bb# S7 02357 #adAb b# 出错

编译原理期末考试习题及答案

一、填空题|(每题4分,共20分) 1. 乔母斯基定义的3型文法(线性文法)产生式形式 A→Ba|a,或A→aB|a,A,B∈Vn, a,b∈Vt 。 2.语法分析程序的输入是单词符号,其输出是语法单位。 3 型为 B → .aB 的LR(0)项目被称为移进项目,型为 B → a.B 的LR(0) 项目被称为待约项目, 4.在属性文法中文法符号的两种属性分别为继承属性和综合属性。 5、运行时存贮管理方案有静态存储分配、动态存储分配和堆式存储分配和方案。 二.已知文法 G(S) (1) E → T | E+T (2) T → F | F*F (3) F →(E)| i (1)写出句型(T*F+i)的最右推到并画出语法树。(4分) (2)写出上述句型的短语,直接短语和句柄。(4分) 答:(1)最右推到(2分) E ==> T ==> F ==> (E) ==> (E+T) ==> (E+F) ==> (E+i) ==> (T+i) ==> (T*F+i) (2) 语法树(2分) (3)(4分) 短语:(T*F+i),T*F+i ,T*F , i 直接短语:T*F , i 句柄:T*F 三. 证明文法G(S) :S → SaS |ε是二义的。(6分) 答:句子aaa对应的两颗语法树为:

因此,文法是二义文法 四.给定正规文法G(S): (1) S → Sa | Ab |b (2) A → Sa 请构造与之等价的DFA。(6分) 答:对应的NFA为:(6分) 状态转换表: a b {F} Φ{S} {S} {S,A} Φ {S,A} {S,A} {S} 五. 构造识别正规语言b*a(bb*a)*b* 最小的DFA(要求写出求解过程)。(15分)答:(1)对应的NFA(5分) a b {0} {1,3} {0} {1,3} Φ{2,3} {2,3} {1,3} {2,3} (5分) 六. 已知文法G(S) : (1) S → ^ | a | (T) (2) T → T,S | S 试:(1)消除文法的左递归;(4分) (2)构造相应的first 和 follow 集合。(6分) 答:(1)消除文法的左递归后文法 G’(S)为: (1) S → ^ | a | (T)

编译原理试题B及答案

编译原理试题B 一、单项选择题(每题1分,共20分) 1、对编译系统有关概念描述正确的是( B) A.目标程序只能是机器语言 B. 编译程序处理的对象是源语言 C.解释程序属于编译程序 D. 词法分析无法自动进行 2. 设有表达式a*b-c,将其中a*b识别为表达式的编译阶段是什么 (B) A.词法分析 B. 语法分析 C.语义分析 D. 代码生成 3. 下面不能用于对文法进行描述的是(A ) A.源语言 B. EBNF C.BNF D. 语法图 4. 设有文法G[S]: S→0S|1A|0,A→1|1S|0B,B→1A|0B,下列符号串中是该文法的句子的是 ()?A.1010001001101 B.0101001110010010 C.1101010011110111 D.1010011101101010 (可画出DFA验证) 5. 文法G[S]: S→aA|bC|a A→aS|bB B→aC|bA|b C→aB|bS ,则不是L(G)句子的是( B ) A.a100b50ab100 B. a1000b500aba C.a500b60aab2a D. a100b40ab10aa (画出DFA) 6. 哪个不是DFA的构成成分(B) A.有穷字母表 B. 初始状态集合 C.终止状态集合 D. 有限状态集合 7.词法分析器的输入是( B ) A.单词符号串 B.源程序 C.语法单位 D.目标程序 8.在词法分析阶段不能识别的是(C ) A.标识符 B. 运算符 C.四元式 D. 常数 9.设有一段C语言程序 while(i&&++j)

{ c=2.19; j+=k; i++; } ,经过词法分析后可以识别的单词个数是(B ) A.19 B.20 C.21 D.23 10.自上而下语法分析的主要动作是( B ) A.移进 B. 推导 C.规约 D. 匹配 11.下面不属于LL(1)分析器的自称部分是( D ) A.LL(1)总控程序 B. LL(1)分析表 C.分析栈 D.源程序串 12.设有文法G[S]为 S→AB|bC, A→ε|b,B→ε|aD,C→AD|b,D→aS|c 则FOLLOW(A)为(A ) A.{a,c,#} B.{c,#} C.{a,#} D.{#} 13.设有文法G[S]: S→Ap|Bq,A→a|cA,B→b|dB ,则FIRST(Ap)为( C )A.{p,q} B. {b,d} C.{a,c} D. 其他 14.自下而上语法分析的主要分析动作是(D ) A.推导 B. 规约 C.匹配 D. 移进-规约 15.算法优先分析中,可规约串是( C ) A.句柄 B.活前缀 C.最左素短语 D.素短语 16. 设有文法G={{S},{a},{S→SaS|ε},S},该文法是( B ) A.LL(1)文法 B.二义性文法 C.SLR(1)文法 D.算法优先文法 17、中间代码生成时所以据的是(C ) A.语法规则 B.词法规则 C.语义规则D.等价变换规则 18、给定文法G: E→E+T|T,T→T*F|F,F→i|(E) 则L(G)中的一个句子i+i+(i*i)*i的逆波兰表示为( C ) A.iii*i++ B.ii+iii**+ C.ii+ii*i*+ D.其他

编译原理期末复习

编译原理期末复习 鉴于编译原理马上就要期末考试,我将手中集中的一些资料上的题目进行了整理归类,每种类型题目给出了所涉及到的基本知识,然后对每类题目中的第一道例题进行了做法进行了讲解,剩下的例题请给大家作为练习,答案也都给出,希望对大家复习有所帮助,最后由于时间很紧,整理的有些仓促,整理中难免有遗漏或错误,请大家见谅。 注:下面出现的字母中,若无特别说明,小写英文字母为终结符,大写英文字母为非终结符,希腊字母为终结符与非终结符的任意组合。 1、简答题(或者名词解释) 下面涉及到的概念中,加下划线的都是在以往一些试卷中出现的原题,务必掌握。 注:这类题目老师说答案不会超过一百个字,否则写的再多也不给分,有些点到即可,不要重复啰嗦。(1)简述编译程序的概念及其构成 答:1)编译程序:它特指把某种高级程序设计语言翻译成等价的低级程序设计语言的翻译程序。 2)构成: (2)简述词法分析阶段的主要任务(也有可能问语法分析阶段主要任务)答:词法分析的任务是输入源程序,对源程序进行扫描,识别其中的单词符号,把字符串形式的源程序转换成单词符号形式的源程序。 语法分析的主要任务是对输入的单词符号进行语法分析(根据语法规则进行推导或者归约),识别各类语法单位,判断输入是不是语法上正确的程序 (3) 简述编译程序的构造过程(这个大家看看,是对(1)和(2)的综合) 答:1)构造词法分析器:用于输入源程序进行词法分析,输出单词符号; 2)构造语法分析器:对输入的单词符号进行语法分析,识别各类语法单位,判断输入是不是语法上正确的程序 3)构造语义分析和中间代码产生器:按照语义规则对已归约出的语法单位进行语义分析并把它们翻译成中间代码。 4)构造优化器:对中间代码进行优化。 5) 构造目标代码生成器:把中间的代码翻译成目标程序。 6) 构造表格管理程序:登记源程序的各类信息和编译各阶段的进展情况。 7)构造错误处理程序:对出错进行处理。 (4) 说明编译和解释的区别: 1)编译要程序产生目标程序,解释程序是边解释边执行,不产生目标程序; 2)编译程序运行效率高而解释程序便于人机对话。 (5)文法:描述语言语法结构的形式规则,一般用一个四元式表示: G=(V T,V N,S,P),其中V T:终结符集合(非空) V N:非终结符集合(非空),且V T ?V N=? S:文法的开始符号,S?V N P:产生式集合(有限)。

编译原理试卷

课程名称:编译原理专业班级:【本科】 备注: 学生不得在试题纸上答题(含填空题、选择题等客观题) 一、单项选择题(本题共10道小题,每小题2分,共20分) 1、在产生式中,符号“→”(“::=”)表示(D )。 A. 等于 B. 恒等于 C. 取决于 D. 定义为 2、编译程序是对(D )程序进行翻译。 A. 汇编语言 B.机器语言 C.自然语言 D. 高级语言 3、合并表达式中的常量运算的目的是(C )。 A.合并常量,使表达式中的常量尽可能少 B.合并常量,使表达式尽可能简短 C.将可在编译时刻计算的运算在编译时刻计算出来,用所计算出来的值替换表达式中出现的所有这种运算,使得生成的代码指令尽可能少 D.以上都不是 4、对应Chomsky四种文法的四种语言之间的关系是(B )。 A.L0?L1?L2?L3 B.L3?L2?L1?L0 C.L3=L2?L1?L0D.L0?L1?L2=L3 5、在状态转换图中,结点代表(D ),用圆圈表示。 A.输入缓冲区B.向前搜索C.字符串D.状态 6、编译程序前三个阶段完成的工作是(C )。 A.词法分析、语法分析和代码优化 B.代码生成、代码优化和词法分析 C.词法分析、语法分析、语义分析和中间代码生成 D.词法分析、语法分析和代码生成 7、自底向上语法分析法的原理是(C )。 A. “移进——推导法” B. “最左推导法” C. “移进——归约法” D. “推导——归约法” 8、无符号常数的识别与拼数工作通常在(C )阶段完成。 A. 语法分析 B. 语义分析 C. 词法分析 D. 代码优化 9、下述方法中,(C )不是自底向上的语法分析方法。 A. 规范归约 B.算符优先分析法 C.递归下降分析法 D.LR分析法 10、算符优先分析法从左到右扫描输入串,当栈顶出现(D )时进行归约。 A. 素短语 B. 直接短语 C.句柄 D. 最左素短语 二、判断题(本题共10道小题,每小题2分,共20分)正确的画“√”,错误的画“X” 1、( 错) 对任何一个编译程序来说,产生中间代码是不可缺少的。 2、( 错) 符号表的内容在词法分析阶段填入并在以后各阶段得到使用。 3、( 错) 设有一个LR(0)项目集I={X→α.Bβ, A→α.},该项目集含有“归约-归约”冲突。 4、( 错) 对文法G中的一个句子,如果能够找到两种以上的推导,则该句子是二义性的。 5、( 对) 一个句型的句柄一定是文法某产生式的右部。 6、( 对) 设有一个LR(0)项目集Ii={X→α.,A→α.},该项目集含有“归约-归约冲

编译原理期末考试题目及答案

一、填空题(每空2分,共20分) 1.编译程序首先要识别出源程序中每个单词,然后再分析每个句子并翻译其意义。 2.编译器常用的语法分析方法有自底向上和自顶向下两种。 3.通常把编译过程分为分析前端与综合后端两大阶段。词法、语法和语义分析是对源程序的分析,中间代码生成、代码优化与目标代码的生成则是对源程序的综合。 4.程序设计语言的发展带来了日渐多变的运行时存储管理方案,主要分为两大类,即静态存储分配方案和动态存储分配方案。 5.对编译程序而言,输入数据是源程序,输出结果是目标程序。 1.计算机执行用高级语言编写的程序主要有两种途径:解释和编译。 2.扫描器是词法分析器,它接受输入的源程序,对源程序进行词法分析并识别出一个个单词符号,其输出结果是单词符号,供语法分析器使用。 3.自下而上分析法采用移进、归约、错误处理、接受等四种操作。 4.一个LL(1)分析程序需要用到一张分析表和符号栈。 5.后缀式abc-/所代表的表达式是a/(b-c)。 二、单项选择题(每小题2分,共20分) 1.词法分析器的输出结果是__C。 A.单词的种别编码B.单词在符号表中的位置 C.单词的种别编码和自身值D.单词自身值 2.正规式M 1 和M 2 等价是指__C_。 A.M1和M2的状态数相等 B.M1和M2的有向边条数相等 C.M1和M2所识别的语言集相等D.M1和M2状态数和有向边条数相等 3.文法G:S→xSx|y所识别的语言是_C____。 A.xyx B.(xyx)* C.xnyxn(n≥0) D.x*yx* 4.如果文法G是无二义的,则它的任何句子α_A____。 A.最左推导和最右推导对应的语法树必定相同B.最左推导和最右推导对应的语法树可能不同 C.最左推导和最右推导必定相同D.可能存在两个不同的最左推导,但它们对应的语法树相同5.构造编译程序应掌握____D__。 A.源程序B.目标语言C.编译方法D.以上三项都是 6.四元式之间的联系是通过__B___实现的。 A.指示器B.临时变量C.符号表D.程序变量 7.表达式(┐A∨B)∧(C∨D)的逆波兰表示为__B___。 A.┐AB∨∧CD∨B.A┐B∨CD∨∧ C.AB∨┐CD∨∧D.A┐B∨∧CD∨ 8. 优化可生成__D___的目标代码。 A.运行时间较短 B.占用存储空间较小 C.运行时间短但占用内存空间大D.运行时间短且占用存储空间小 9.下列___C___优化方法不是针对循环优化进行的。 A. 强度削弱B.删除归纳变量C.删除多余运算D.代码外提 10.编译程序使用_B_区别标识符的作用域。 A. 说明标识符的过程或函数名B.说明标识符的过程或函数的静态层次 C.说明标识符的过程或函数的动态层次 D. 标识符的行号 三、判断题(对的打√,错的打×,每小题1分,共10分) 2.一个有限状态自动机中,有且仅有一个唯一的终态。x

编译原理试题(卷)汇总-编译原理期末试题(卷)(8套含答案解析-大题集)

编译原理考试题及答案汇总 一、选择 1.将编译程序分成若干个“遍”是为了_B__。 A . 提高程序的执行效率 B.使程序的结构更加清晰 C. 利用有限的机器内存并提高机器的执行效率 D.利用有限的机器内存但降低了机器的执行效率 2.正规式 MI 和 M2 等价是指__C__。 A . MI 和 M2 的状态数相等 B.Ml 和 M2 的有向弧条数相等。 C .M1 和 M2 所识别的语言集相等 D. Ml 和 M2 状态数和有向弧条数相等 3.中间代码生成时所依据的是 _C_。 A.语法规则 B.词法规则 C.语义规则 D.等价变换规则 4.后缀式 ab+cd+/可用表达式__B_来表示。 A. a+b/c+d B.(a+b)/(c+d) C. a+b/(c+d) D. a+b+c/d 6.一个编译程序中,不仅包含词法分析,_A____,中间代码生成,代码优化,目标代码生成等五个部分。 A.( ) 语法分析 B.( )文法分析 C.( )语言分析 D.( )解释分析 7.词法分析器用于识别__C___。 A.( ) 字符串 B.( )语句 C.( )单词 D.( )标识符 8.语法分析器则可以发现源程序中的___D__。 A.( ) 语义错误 B.( ) 语法和语义错误 C.( ) 错误并校正 D.( ) 语法错误 9.下面关于解释程序的描述正确的是__B___。 (1) 解释程序的特点是处理程序时不产生目标代码 (2) 解释程序适用于 COBOL 和 FORTRAN 语言 (3) 解释程序是为打开编译程序技术的僵局而开发的 A.( ) (1)(2) B.( ) (1) C.( ) (1)(2)(3) D.( ) (2)(3) 10.解释程序处理语言时 , 大多数采用的是__B___方法。 A.( ) 源程序命令被逐个直接解释执行 B.( ) 先将源程序转化为中间代码 , 再解释执行 C.( ) 先将源程序解释转化为目标程序 , 再执行 D.( ) 以上方法都可以 11.编译过程中 , 语法分析器的任务就是__B___。 (1) 分析单词是怎样构成的 (2) 分析单词串是如何构成语句和说明的 (3) 分析语句和说明是如何构成程序的 (4) 分析程序的结构 A.( ) (2)(3) B.( ) (2)(3)(4)C.( ) (1)(2)(3) D.( ) (1)(2)(3)(4) 12.编译程序是一种___C__。 A. ( ) 汇编程序 B.( ) 翻译程序 C.( ) 解释程序 D.( ) 目标程序 13.文法 G 所描述的语言是_C____的集合。 A. ( ) 文法 G 的字母表 V 中所有符号组成的符号串 B.( ) 文法 G 的字母表 V 的闭包 V* 中的所有符号串 C.( ) 由文法的开始符号推出的所有终极符串 D. ( ) 由文法的开始符号推出的所有符号串 14.文法分为四种类型,即 0 型、1 型、2 型、3 型。其中 3 型文法是___B__。 A. ( ) 短语文法 B.( ) 正则文法 C.( ) 上下文有关文法 D.( ) 上下文无关文法15.一个上下文无关文法 G 包括四个组成部分,它们是:一组非终结符号,一组终结符号,一个开始符号,以及一组 __D___。 A.( ) 句子 B.( ) 句型 C.( ) 单词 D.( ) 产生式 16.通常一个编译程序中,不仅包含词法分析,语法分析,中间代码生成,代码优化,目标代码生成等五个部分,还应包括_C____。

上海大学软件工程试卷试题(附答案)

、单项选择题(本大题共20小题,每小题 1 分,共20分) 在每小题列出的备选项中只有一个是符合题目要求的,多选或未选均无分。请将其代码填写在题后的括号内。错选、 1. 在软件生命周期的各个阶段中,工作量最大的阶段是 A .需求分析B.总体设计 C.综合测试 D .软件维护 2. 瀑布模型的特点不包括 A.前一阶段的任务没有完成,不能进入下一阶段工作 B.进入某个阶段工作后,不再回复到之前的阶段工作C.只有完成并评审了规定的文档,才标志着一个阶段的工作结束D.在软件产生之前,需求无法得到充分的测试 3. 螺旋模型强调的开发手段是 A.分阶段开发 C.风险驱动开发 4. 需求分析阶段的工作不包括 A.获得当前系统的物理模型 C.建立目标系统的逻辑模型 5. 总体设计阶段的工作不包括 A.确定程序的模块组成 C.确定实现各个模块功能的处理逻辑 6. 描绘系统物理模型的传统工具是 A .系统流程图 C.实体-联系图 7. 符合信息隐藏原理的是 A .将信息隐藏起来不被发现 C.将可能要修改的设计决策隐藏起来B.废弃式原型开发 D.增量式开发 B.抽象出当前系统的逻辑模 型 建立目标系统的物理模型 D. B.确定模块间的相互关 系 D.制定测试计划 B.数据流图 D.状态转换图 B.将信息隐藏起来确保安全 D.将不要修改的设计决策隐藏起 来 8. 模块的独立性原则是指软件设计时要尽量使模块具有 A .低内聚、低耦合B.低内聚、高耦合C.高内聚、低耦合D.高内聚、高耦合

[ 9. 有利于提高模块独立性的做法是 A.尽量使模块具有逻辑型内聚 B.尽量使模块间具有内容型耦合 C.使判定作用范围内的模块尽量成为该判定所在模块的直属下级模块 D.尽量提高模块的扇入数和扇出数 [ 10. 有关结构化设计(SD )方法的正确叙述是 ] A.只使用顺序、选择和循环 3 种控制结构 B.由数据结构映射出软件的结构 C.是一种面向对象的设计方法 D.是一种面向数据流的设计方法 [ 11. 有关总体设计阶段所使用的结构图的不正确叙述是 ] A.能够描述软件系统的模块组成 B.结构图中的模块是按照自上而下、自左向右的顺序执行的 C.能够描述模块间的调用关系以及模块间调用时所传递的信息 D.将模块间调用时所传递的信息分成两种:数据信息和控制信息 [ 12. 要求使用顺序、选择和循环控制结构的组合或嵌套来表达程序的过程设计工具是 A .程序流程图B . 盒图 C .判定表D.PDL 13 . 关于好的编码风格的正确叙述是 A .把多个语句写在同一行以节省空间B.要求用户指定输入数据的数目 C .检查输入项重要组合的合法性D.表达式中不使用多余的括号,以简化表达式 14 . 能发现软件需求规格说明书中的错误的测试步骤是 A .模块测试B.子系统测试 C .系统测试D.验收测试 15 . 自顶向下集成测试和自底向上集成测试都具有的优点是 A .较早发现主要设计错误B.可采用深度优先策略和宽度优先策略 C .支持故障隔离D.可复用模块得到充分测试 19 . 不符合面向对象设计准则的是 A .用对象的封装性来实现信息隐藏B.尽可能松散对象之间的交互耦合 C .尽可能减小继承耦合度D.尽可能设计小而简单的类 20. 上海大学校内电话号码由 5 位数字组成,但第 1 位数字只能是 5 或6。该电话号码的

编译原理期末考试试卷A卷

试卷 答题时限: 分钟 考试形式:闭卷笔试 得分统计表: 一、单项选择题(请从 个备选答案中选择最适合的一项,每小题 分,共 分) 编译程序是对( ) 汇编程序的翻译 高级语言程序的解释执行 机器语言的执行 高级语言的翻译 词法分析器的输出结果是( ) .单词的种别编码 .单词在符号表中的位置 .单词的种别编码和自身值 .单词自身值 在规范规约中,用( )来刻画可规约串。 .直接短语 .句柄 .最左素短语 .素短语 与正规式 等价的正规式是( ) .

. . . 若项目集 含有 α·,则在状态 时,仅当面临输入符号 ∈ 时,才采取 α·动作的一定是( ) . 文法 . 文法 . 文法 . 文法 四元式之间的联系是通过( )实现的。 指示器 临时变量 符号表 程序变量 .文法 : 所识别的语言是( ) . . . ≥ . 有一语法制导翻译如下所示: 若输入序列为 ,且采用自下而上的分析方法,则输出序列为( ) . . .关于必经结点的二元关系,下列叙述不正确的是( ) .满足自反性 .满足传递性 .满足反对称型 .满足对称性 .错误的局部化是指( )。 .把错误理解成局部的错误 .对错误在局部范围内进行纠正 .当发现错误时,跳过错误所在的语法单位继续分析下去 .当发现错误时立即停止编译,待用户改正错误后再继续编译

二、判断题(每小题 分,共 分) 文法 的一个句子对应于多个推导,则 是二义性的。(× ) 动态的存储分配是指在运行阶段为源程序中的数据对象分配存储单元。(√ ) 算符优先文法采用“移进-规约”技术,其规约过程是规范的。( × ) 删除归纳变量是在强度削弱以后进行。( √ ) 在目标代码生成阶段,符号表用于目标代码生成。( × ) 三、简答题(每小题 分,共 分) 构造正规式 相应的正规式并化简。(共 分) ( )根据正规式,画出相应的 ( 分) ( ( )化简,并画出 ( 分) 划分为状态: 将这三个状态命名为 , , 三个状态

期末考试编译原理试卷及答案

一. 填空题(每空2分,共20分) 1. 不同的编译程序关于数据空间的存储分配策略可能不同,但大部分编译中采用的方案有两种:静 态存储分配方案和动态存储分配方案,而后者又分为(1) 和 (2) 。 2. 规范规约是最(3)规约。 3. 编译程序的工作过程一般划分为5个阶段:词法分析、(4) 、语义分析与中间代码生成,代码优化及(5) 。另外还有(6)和出错处理。 4.表达式x+y*z/(a+b)的后缀式为 (7) 。 5.文法符号的属性有综合属性和 (8)。 6.假设二位数组按行存放,而且每个元素占用一个存储单元,则数组a[1..15,1..20]某个元素a[i ,j]的地址 计算公式为(9)。 7.局部优化是局限于一个(10)范围内的一种优化。 二. 选择题(1-6为单选题,7-8为多选题,每问2分,共20分) 1. 一个上下文无关文法G 包括四个组成部分:一组终结符,一组非终结符,一个( ),以及一组 ( )。 A . 字符串 B . 产生式 C . 开始符号 D . 文法 2.程序的基本块是指( )。 A . 一个子程序 B . 一个仅有一个入口和一个出口的语句 C . 一个没有嵌套的程序段 D . 一组顺序执行的程序段,仅有一个入口和一个出口 3. 高级语言编译程序常用的语法分析方法中,递归下降分析法属于( )分析方法。 A . 自左向右 B . 自顶向下 C . 自底向上 D . 自右向左 4.在通常的语法分析方法中,( )特别适用于表达式的分析。 A . 算符优先分析法 B . LR 分析法 C . 递归下降分析法 D . LL (1)分析法 5.经过编译所得到的目标程序是( )。 A . 四元式序列 B . 间接三元式序列 C . 二元式序列 D . 机器语言程序或汇编语言程序 6. 一个文法所描述的语言是( );描述一个语言的文法是( )。 A . 唯一的 B . 不唯一的 C . 可能唯一,也可能不唯一 7. 如果在文法G 中存在一个句子,当其满足下列条件( )之一时,则称该文法是二义文法。 A . 其最左推导和最右推导相同 B . 该句子有两个不同的最左推导 C . 该句子有两个不同的最右推导 D . 该句子有两棵不同的语法树

编译原理试题及答案3

编译原理复习题 一、填空题: 1、编译方式与解释方式的根本区别在于(是否生成目标代码)。 2、对编译程序而言,输入数据是(源程序),输出结果是(目标程序)。 3、如果编译程序生成的目标程序是机器代码程序,则源程序的执行分为两大阶段:(编译阶段)和(运行阶段)。 4、如果编译程序生成的目标程序是汇编语言程序,则源程序的执行分成三个阶段:(编译阶段)、(汇编阶段)和(运行阶段)。 5、自顶向下语法分析方法会遇到的主要问题有(回溯)和((左递归带来的)无限循环)。 6、LL(k)分析法中,第一个L的含义是(从左到右进行分析),第二个L的含义是(每次进行最左推导),“k”的含义是(向输入串中查看K个输入符号)。 7、LL(1)分析法中,第一个L的含义是(从左到右进行分析),第二个L的含义是(每次进行最左推导),“1”的含义是(向输入串中查看1个输入符号)。 8、自顶向下语法分析方法的基本思想是:从(识别符号)出发,不断建立(直接推导),试图构造一个推导序列,最终由它推导出与输入符号相同的(符号串)。 9、自底向上语法分析方法的基本思想是:从待输入的符号串开始,利用文法的规则步步向上进行(直接归约),试图(归约)到文法的(识别符号|开始符号)。 10、LR(0)分析法的名字中,“L”的含义是(从左到右进行分析),“R”的含义是(采用最右推导的逆过程---最左归约),“0”的含义是(向貌似句柄的符号串后查看0个输入符号)。 11、LR(1)分析法的名字中,“L”的含义是(从左到右进行分析),“R”的含义是(采用最右推导的逆过程---最左归约),“1”的含义是(向貌似句柄的符号串后查看1个输入符号)。 12、SLR(1)分析法的名字中,“S”的含义是(简单的),“L”的含义是(从左到右进行分析),“R”的含义是(采用最右推导的逆过程---最左归约),“1”的含义是(向貌似句柄的符号串后查看1个输入符号)。 13、在编译过程中,常见的中间语言形式有(逆波兰表示)、(三元式)、(四元式)和(树形表示)。 14、在编译程序中安排中间代码生成的目的是(便于代码优化)和(便于目标程序的移植)。 15、表达式-a+b*(-c+d)的逆波兰表示为(a-bc-d+*+ )。 16、表达式a+b*(c+d/e)的逆波兰表示为(abcde/+*+ )。 17、表达式a:=a+b*c↑(d/e)/f的逆波兰表示为(aabcde/↑*f/+:= )。 18、文法符号的属性有(继承属性)和(综合属性)两种。 19、一个文法符号的继承属性是通过语法树中它的(兄弟结点与父)结点的相应文法符号的属性来计算的。 20、一个文法符号的综合属性是通过语法树中它的(子)结点的属性来计算的。

《编译原理》期末考试复习题

《编译原理》期末考试复习题 一、是非题(请在括号内,正确的划√,错误的划×)(每个2分,共20分) ×1.计算机高级语言翻译成低级语言只有解释一种方式。() ×2.在编译中进行语法检查的目的是为了发现程序中所有错误。() √3.甲机上的某编译程序在乙机上能直接使用的必要条件是甲机和乙机的操作系统功能完全相同。 () ×4.正则文法其产生式为 A->a , A->Bb, A,B∈VN , a 、b∈VT 。 () √5.每个文法都能改写为 LL(1) 文法。 () √6.递归下降法允许任一非终极符是直接左递归的。 () ×7.算符优先关系表不一定存在对应的优先函数。 () ×8.自底而上语法分析方法的主要问题是候选式的选择。 () ×9.LR 法是自顶向下语法分析方法。 () ×10.简单优先文法允许任意两个产生式具有相同右部。 () 三、填空题(每空1分,共10分) 1.编译程序的工作过程一般可以划分为词法分析,语法分析,语义分析,中间代码生成,代码优化等几个基本阶段,同时还会伴有__ ___和 ___ _。 表格管理出错处理_ 2.若源程序是用高级语言编写的,__ __是机器语言程序或汇编程序,则其翻译程序称为 __ __ 。 _目标程序_编译程序 3.编译方式与解释方式的根本区别在于__ __。 是否生成目标代码_ 4.对编译程序而言,输入数据是__ __, 输出结果是__ ___。 _源程序目标程序

5.产生式是用于定义__ __的一种书写规则。 _语法成分 6.语法分析最常用的两类方法是___ __和__ __分析法。 自上而下_自下而上 四、简答题(20分) 1. 什么是句子?什么是语言 ? 答:(1)设G是一个给定的文法,S是文法的开始符号,如果S x(其中x∈VT*),则称x是文法的一个句子。 (2)设G[S]是给定文法,则由文法G所定义的语言L(G)可描述为:L(G)={x│S x,x∈VT*} 。 一、是非题(请在括号内,正确的划√,错误的划×)(每个2分,共20分) ×1.对于数据空间的存贮分配,FORTRAN采用动态贮存分配策略。() ×2.甲机上的某编译程序在乙机上能直接使用的必要条件是甲机和乙机的操作系统功能完全相同。() √3.递归下降分析法是自顶向上分析方法。() ×4.产生式是用于定义词法成分的一种书写规则。() √5.LR 法是自顶向下语法分析方法。() √6.在SLR (1 )分析法的名称中,S的含义是简单的。() ×7.综合属性是用于“ 自上而下” 传递信息。() ×8.符号表中的信息栏中登记了每个名字的属性和特征等有关信息,如类型、种属、所占单元大小、地址等等。() ×9.程序语言的语言处理程序是一种应用软件。() ×10.解释程序适用于COBOL 和FORTRAN 语言。() 三、填空题(每空1分,共10分) 1.一个句型中的最左简单短语称为该句型的___句柄__。

上海大学公共英语秋试卷A

上海大学2013 ~2014学年秋季学期研究生试题A卷 课程名称:写作1 课程编号:001704G2学分:0.5 (请在答题纸上答题,否则无效) Part One: Diction (20%)(10—20%可以来自于课本) Directions: Choose the right one from the following two choices marked A or B. 1.The argument can only be settled by someone who is __________. A. disinterested B. uninterested 2.This is an interesting book with vivid account of __________ events and people. A. historic B. historical 3.The information was __________ as a result of various experiments. A. obtained B. acquired 4.If no one takes the __________ and plan for the trip, we will never leave home. A. initial B. initiative 5.From her conversation, I __________ that she had a happy family. A. induce B. deduce 6.I don’t know the results of the tests yet. __________, why are you so interested in them? A. Somehow B. Anyhow 7. He gave his clearest _____ yet that he will keep racing. A. indication B. prediction 8.He hoped the firm would _____ him to the Paris branch. A. transmit B. transfer 9. Jim Lovell talked about the current situation at NASA during an _____ to mark the fortieth anniversary of Apollo Thirteen. A. event B. incident 10. A good scientist is highly __________ since he often has to look for relations in data which are often complex and incomplete. A. imaginative B. imaginary 11. I seem to have _____ myself in something I don’t understand. A. evolved B. involved 12. I'm very sorry to have _____ you with so many questions on such an occasion. A. interfered B. bothered 13. When you have filled in the questionnaire, copy it and send the _____ to your employer. A. original B. initial 14. People don’t like to ask questions for fear of app earing _____. A. illiterate B. ignorant 15. From Mexico, President Obama traveled Friday to the Caribbean nation of Trinidad and Tobago for the Fifth _____ of the Americas. A. Conference B. Summit 16. She was a woman of _____ talent and determination. A. single B. unique 17. FM radio stations _____ in a range of frequencies between eighty-eight and one hundred eight megahertz.

编译原理试卷

一、填空题(每题3分,共15分) 1.编译原理是一种翻译程序,它将高级语言编写的源程序翻译成等价的机器语言或汇编 语言的目标程序 2.整个编译过程可以分为五个阶段,分别是:词法分析、语法分析、语义分析及中 间代码生成、代码优化和目标代码的生成。 3.设X是符号串,符号串的幂运算X0= ε 4.乔姆斯基把文法分为四种类型,即0型、1型、2型、3型文法。2型文法也称为 上下文无关文法 5.采用递归下降分析法进行语法分析,要求文法是文法。 二、选择题(每题3分,共15分) 1.若文法G定义的语言是无限集,则文法必然是(D)。 A.上下文无关文法 B.正规文法 C.二义性文法 D.递归文法 2.文法G产生的()的集合是该文法的描述语言。 A.句型 B.终结符集 C.非终结符集 D.句子 3.通常程序设计语言的词法规则可用正规式描述,词法分析器可用(B)来实现。 A.语法树 B.有穷自动机 C.栈 D.数组 4.设有文法G[S]:S→Bb│b,B→bS,该文法所描述的语言是(C) A. b n,n≥0 B.b2n,n≥0 C.b2n+1,n≥0 D.b2n+1,n≥1 5.用1代表字母,d代表数字,则定义标识符单词的正规式是(C) A.1d* B.11* C.1(1│d)* D.11*│d* 三、判断题(每小题2分,共10分) ()给定一个文法,就能从结构上唯一地确定其语言,给定一种语言,就能唯一地确定其文法。 ()用二义性文法定义的语言也是二义性的。 ()正规式、正规文法、有穷自动机都是描述正规集的工具,它们的描述能力是等价的,它们之间是可以相互转换的。 ()采用自下而上分析法进行语法分析需要消除文法的递归性。 ()算符优先文法中,任何两个终结符对(a,b)在·>,<·和=·这三种关系中只有一种关系成立。

编译原理考试试卷

南京工业大学继续教育学院编译原理期末考试试卷 (2012-2013学年) A卷 一、选择题(每题2分,共20分) 得分 1. 一个上下文无关文法G包括四个组成部分:一组终结符,一组非终结符,一个_____,以及一组产生式。 A.字符串 B.运算符号 C.开始符号 D.文法 2.程序的基本块是指_____。 A.一个子程序 B.一个仅有一个入口和一个出口的语句 C.一个没有嵌套的程序段 D.一组顺序执行的程序段,仅有一个入口和一 个出口 3. 高级语言编译程序常用的语法分析方法中,递归下降分析法属于_____分析方法。 A.自左向右 B.自顶向下 C.自底向上 D.自右向左 4.经过编译所得到的目标程序是_____。 A.四元式序列 B.间接三元式序列 C.二元式序列 D.机器语言程序或汇编语言程序 5.运行阶段的存储组织与管理的目的是_____。 ①提高编译程序的运行速度②节省编译程序的存储空间 ③提高目标程序的运行速度④为运行阶段的存储分配做准备 A. ①② B. ②③ C. ③④ D. ④②6.词法分析器的输出结果是_____。 A.( ) 单词的种别编码B.( ) 单词在符号表中的位置C.( ) 单词的种别编码和自身值D.( ) 单词自身值 7.正规式M 1 和M 2 等价是指_____。

A.( ) M1和M2的状态数相等B.( ) M1和M2的有向边条数相等 C.( ) M1和M2所识别的语言集相等D.( ) M1和M2状态数和有向边条数相等 8.文法G:S→xSx|y所识别的语言是_____。 A.( ) xyx B.( ) (xyx)* C.( ) xnyxn(n≥0) D.( ) x*yx* 9.语言是_____。 A.句子的集合B.产生式的集合 C.符号串的集合D.句型的集合 10.编译程序前三个阶段完成的工作是 A.词法分析、语法分析和代码优化 B.代码生成、代码优化和词法分析 C.词法分析、语法分析、语义分析和中间代码生成 D.词法分析、语法分析和代码优化 二、名词解释(每题2分,共20分) 得分 1.最左推导: 2.语法: 3.文法: 4.基本块: 5.语法制导翻译: 6.短语: 7.规范句型:

编译原理期末考试试卷及答案

期末考试试卷(A)卷 一、填空题(每小题2分,共20分) 1、字母表∑,用∑*表示∑上所有有穷长的串集合,∑*称为∑的①。 2、设z=abc,则z的固有头是①。 3、如何由语言基本符号组成程序中各个语法成分(包括程序)的一组规则叫 ①。 4、设∑={a,b},∑上的正规式(a|b)(a|b) 相应的正规集为① 5、NFA的映象f是从"状态×字"映射到"状态子集",f为①值函数。 6、LR分析是按规范句型的①为可归约串。 7、结点的①属性值由该结点的兄弟结点和父结点的属性值计算。 8、如果分析树中一结点的属性b依赖于属性c,那么这个结点的属性b的语义规 则的计算必须在定义属性c的语义规则的计算①。 9、对于栈式符号表,引入一个显示嵌套层次关系表- ①表,该表总是 指向当前正在处理的最内层的过程的子符号表在栈符号表中的起始位置。 10、任一有向边序列n1 → n2,n2 → n3,…,nk-1 → nk为从结点n1到结点nk 的一条通路。如果n1=nk,则称该通路为①。 二、单项选择(每小题2分,共14分) 1、乔姆斯基把文法分成4种类型,即0型、1型、2型和3型。其中3型文法也称 为()。 A.上下无关文法 B.正规文法 C.上下文有关文法 D.无限制文法 2、生成非0开头的正偶数集的文法是()。 A. Z::=ABC B. Z::=ABC C::=0|2|4|6|8 C::=0|2|4|6|8 B::=BA|B0|ε B::=BA|B0|0 A::=1|2|3|…|9 A::=1|2|3|…|9 C. Z::=ABC|2|4|6|8 D. Z::=ABC|2|4|6|8 C::=0|2|4|6|8 C::=0|2|4|6|8 B::=BA|B0|0 B::=BA|B0|ε A::=1|2|3|…|9 A::=1|2|3|…|9 3、简单优先分析法从左到右扫描输入串,当栈顶出现()时进归约。

编译原理期末A试卷答案

黄冈师范学院 2012—2013学年度第一学期期末试卷参考答案 考试课程:编译原理考核类型:考试A卷 考试形式:闭卷出卷教师:牛冀平 考试专业:计算机科学与技术,软件工程 考试班级:计科201001班,软件201001班 一、填空(每空0.5分,共 10分) 1、编译程序的功能是是对(高级语言)进行翻译,使之生成目标代码。 2、编译程序的工作过程一般划分为5个阶段:(词法分析)、语法分析、语义分析与中间代码生成,(代码优化)及目标代码生成。另外还有表格管理和(出错处理)。 3、一个上下文无关文法所含四个组成部分是一组终结符号、一组(非终结符号)、一个开始符号、(一组产生式)。 4、设G是一个给定的文法,S是文法的开始符号,如果S=> x(其中x∈V*),则称x 是文法的一个(句型)。 5、规范归约中的可归约串是指句柄,算符优先分析中的可归约串是指(最左素短语)。 6、在编译过程中,可采用的中间代码形式有()、()、()等。(三元式、间接三元式、四元式、逆波兰式、抽象语法树)(任选三个即可) 7、语法分析最常用的两类方法是(自上而下)和(自下而上)分析法。 8、表达式(a+b)*c的后缀表达式为(ab+c*)。 9、符号表的结构一般有(线性表)、(有序表)、(散列表或哈希表)等。 分别使用的查找方法有(顺序查找)、(折半查找)和(哈希法查找) 10、代码优化的目的是(减少代码的时空开销)。 11、寄存器是CPU内部的(存储单元),其访问时间小于CPU对内存的访问时间。 12、如果一个句子存在两棵不同的语法树就说明该句子是(二义性)的。 二、选择题(每题1分,共10分)

编译原理试题及答案

参考答案 一、单项选择题(共10小题,每小题2分,共20分) 1.语言是 A .句子的集合 B .产生式的集合 C .符号串的集合 D .句型的集合 2.编译程序前三个阶段完成的工作是 A .词法分析、语法分析和代码优化 B .代码生成、代码优化和词法分析 C .词法分析、语法分析、语义分析和中间代码生成 D .词法分析、语法分析和代码优化 3.一个句型中称为句柄的是该句型的最左 A .非终结符号 B .短语 C .句子 D .直接短语 4.下推自动机识别的语言是 A .0型语言 B .1型语言 C .2型语言 D .3型语言 5.扫描器所完成的任务是从字符串形式的源程序中识别出一个个具有独立含义的最小语法单位即 A . 字符 B .单词 C .句子 D .句型 6.对应Chomsky 四种文法的四种语言之间的关系是 A .L 0?L 1?L 2?L 3 B .L 3?L 2?L 1?L 0 C .L 3=L 2?L 1?L 0 D .L 0?L 1?L 2=L 3 7.词法分析的任务是 A .识别单词 B .分析句子的含义 C .识别句子 D .生成目标代码 8.常用的中间代码形式不含 A .三元式 B .四元式 C .逆波兰式 D .语法树 9. 代码优化的目的是 A .节省时间 B .节省空间 C .节省时间和空间 D .把编译程序进行等价交换 10.代码生成阶段的主要任务是 A .把高级语言翻译成汇编语言 B .把高级语言翻译成机器语言 C .把中间代码变换成依赖具体机器的目标代码 装 订 线

D.把汇编语言翻译成机器语言 二、填空题(本大题共5小题,每小题2分,共10分) 1.编译程序首先要识别出源程序中每个(单词),然后再分析每个(句子)并翻译其意义。2.编译器常用的语法分析方法有(自底向上)和(自顶向下)两种。 3.通常把编译过程分为分析前端与综合后端两大阶段。词法、语法和语义分析是对源程序的(分析),中间代码生成、代码优化与目标代码的生成则是对源程序的(综合)。 4.程序设计语言的发展带来了日渐多变的运行时存储管理方案,主要分为两大类,即(静态存储分配)方案和(动态存储分配)方案。 5.对编译程序而言,输入数据是(源程序),输出结果是(目标程序)。 三、名词解释题(共5小题,每小题4分,共20分) 1.词法分析 词法分析的主要任务是从左向右扫描每行源程序的符号,按照词法规则 从构成源程序的字符串中识别出一个个具有独立意义的最小语法单位, 并转换成统一的内部表示(token),送给语法分析程序。 2.LL(1)文法 若文法的任何两个产生式A →α | β都满足下面两个条件: (1)FIRST(α) ? FIRST(β ) = φ; (2)若β?* ε,那么FIRST(α) ? FOLLOW( A ) = φ。 我们把满足这两个条件的文法叫做LL(1)文法,其中的第一个L代表从左 向右扫描输入,第二个L表示产生最左推导,1代表在决定分析器的每步 动作时向前看一个输入符号。除了没有公共左因子外,LL(1)文法还有一 些明显的性质,它不是二义的,也不含左递归。 3.语法树 句子的树结构表示法称为语法树(语法分析树或语法推导树)。 给定文法G=(V N,V T,P,S),对于G的任何句型都能构造与之关联的 语法树。这棵树具有下列特征: (1)根节点的标记是开始符号S。 (2)每个节点的标记都是V中的一个符号。 (3)若一棵子树的根节点为A,且其所有直接子孙的标记从左向右的排列 次序为A1A2…A R,那么A→A1A2…A R一定是P中的一条产生式。

相关主题
文本预览
相关文档 最新文档