您好,欢迎来到刀刀网。
搜索
您的当前位置:首页编译原理 - A卷

编译原理 - A卷

来源:刀刀网
浙江工业大学之江学院 编译原理 试卷A 2009/2010(2)

课程:编译原理 姓名: 班级: 总分: 1 2 3 题序 总评 计分

一、选择题(20*2=40)

1、 两个有穷自动机等价是指它们的( )。

A.状态数相等 C.所识别的语言相等

B.有向弧数相等

D.状态数和有向弧数相等

2、 若状态k含有项目“A→α· ”,且仅当输入符号a∈FOLLOW(A)时,才用规则“A →α”归约的

语法分析方法是( )。 A.LALR分析法

B.LR(0)分析法

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

3、 若a为终结符,则A→α · aβ为( )项目。

A.归约

B.移进

C.接受

D.句柄

4、 在使用高级语言编程时,首先可通过编译程序发现源程序的全部和部分( )错误。

A. 语法

B. 语义

C. 语用

D. 运行

5、 乔姆斯基(Chomsky)把文法分为四种类型,即0型、1型、2型、3型。其中3型文法是( )

A. 非文法

B. 正则文法

C. 上下文有关文法

D. 上下文无关文法

6、 一个句型中的( )称为该句型的句柄。

A. 最左直接短语

B. 最右直接短语

C. 终结符

D. 非终结符

7、 一个上下文无关文法G包括四个组成部分,它们是一组非终结符号,一组终结符号,一个开始符号,以及一组( )

A. 句子

B. 产生式

C. 单词

D. 句型

8、 编译程序是一种( )

A. 汇编程序

B. 翻译程序

C. 解释程序

D. 目标程序

9、 按逻辑上划分,编译程序第三步工作是( )

A. 语义分析

B. 词法分析

C. 语法分析

D. 代码生成

10、 在语法分析处理中,FIRST集合、FOLLOW集合均是( )

A. 非终结符集

B.终结符集

C. 字母表

D. 状态集

11、 识别上下文无关语言的自动机是( )

A. 下推自动机

B. NFA

C. DFA

D. 图灵机

12、 正则表达式R1和R2等价是指( )

A. R1和R2都是定义在一个字母表上的正则表达式 B. R1和R2中使用的运算符相同 C. R1和R2代表同一正则集 D. R1和R2代表不同正则集

13、 已知文法G[S]:S→A1, A→A1|S0|0。与G 等价的正规式是( )

A. 0(0|1)*

B. 1*|0*1

C. 0(1|10)*1

D. 1(10|01)*0

14、 给定文法A→bA|cc,则符号串①cc ②bcbc ③bcbcc ④bccbcc ⑤bbbcc中,是该文法句子的是

( ) A. ①

B. ③④⑤

C. ②④

D. ①⑤

15、 文法 S→aaS|abc 定义的语言是( )。

A.{a2kbc|k>0}

B.{akbc|k>0}

C.{a2k-1bc|k>0}

D.{akakbc|k>0}

16、 若B为非终结符,则 A→.B 为( )。

A.移进项目

B.归约项目

C.接受项目

D.待约项目

17、 同心集合并可能会产生新的( )冲突。

A.二义

B.移进/移进

C.移进/归约

D.归约/归约

18、 如图所示自动机M,请问下列哪个字符串不是M所能识别的( )。

A. bbaa

B. abba

C. abab

D. aabb

19、 有限状态自动机能识别( )

A.上下文无关语言

B.上下文有关语言

C.正规语言

D.0型文法定义的语言

20、 与逆波兰式(后缀表达式)ab+c*d+对应的中缀表达式是( )

A. a+b+c*d

B. (a+b)* c+d

C. (a+b)* (c+d)

D. a+b*c+d

二、简答题(6*5=30)

1、 写出表达式(a+b*c)/(a+b)-d的逆波兰表示。

Abc*+ab+/d-

2、 简述DFA与NFA有何区别?

DFA与NFA的区别表现为:DFA的映象M是从K×∑到K,而NFA的映象M是从K×∑到K的子集,即映象M将产生一个状态集合(可能为空集),而不是单个状态。

3、 已知文法: SaAB AbBb BA| 给出符号串abbbb的最左推导和最右推导。 Answer:

最左推导是:

SaABabBbBabAbBabbBbbBabbbbBabbbb 最右推导是:

SaABaAabBbabAbabbBbbabbbb 4、 文法G=({A,B,S},{a,b,c},P,S)其中P为: S→Ac|aB A→ab B→bc

写出L(G[S])的全部元素。 答案: L(G[S])={abc}

5、 文法S→S(S)S|ε (1) 生成的语言是什么?

(2) 该文法是二义的吗?说明理由。 答案:

(1) 嵌套的括号

(2) 是二义的,因为对于()()可以构造两棵不同的语法树。 6、 设有文法: G[S]: S→aAbDe | d A→BSD | e B→Sac | cD | ε D→Se | ε 求Follw(S) Answer:

Follw(S)={a,b,d,e,$}

三、分析题(2*15=30)

1、 设有正规式r=1(0|1)*1,给出识别该正规式的NFA和DFA并最简化(要有计算过程)。

NFA

下面是将NFA转换成DFA: 状态 {q0} {q1,q2,q3,q5,q8} {q2,q3,q4,q5,q7,q8} {q2,q3,q5,q6,q7,q8,q9} 输入 0 {q2,q3,q4,q5,q7,q8} {q2,q3,q4,q5,q7,q8} {q2,q3,q4,q5,q7,q8} 1 {q1,q2,q3,q5,q8} {q2,q3,q5,q6,q7,q8,q9} {q2,q3,q5,q6,q7,q8,q9} {q2,q3,q5,q6,q7,q8,q9}

DFA

下面是将DFA最简化: 先分成两个状态集合: {q0,q1,q2},{q3}

move({q0,q1,q2}, 0)={q2} move({q0,q1,q2}, 1)={q1,q3} q0可分离出来 {q0},{q1,q2},{q3} move({q1,q2}, 0)={q2} move({q1,q2}, 1)={q3}

最简化的DFA

2、 已知文法

A→aAd|aAb|

判断该文法是否是SLR(1)文法,若是则构造相应分析表,并对输入串ab给出分析过程。

Answer:

文法:

A→aAd|aAb|

拓广文法为G',增加产生式S'→A 若产生式排序为: r0: S'→A r1: A→aAd r2: A→aAb r3: A→ 由产生式知: First (S' ) = {,a} First (A ) = {,a} Follow(S' ) = {#} Follow(A ) = {d,b,#}

G'的LR(0)项目集族及识别活前缀的DFA 如下图所示:

在I0 中:

A →.aAd 和A →.aAb 为移进项目,A →.为归约项目,存在移进-归约冲突,因此所给文法不是LR(0)文法。 在I0、I2 中:

Follow(A)= {d,b,#}

由于:Follow(A) ∩{a}= {d,b,#} ∩{a}=φ

所以在I0、I2中的移进-归约冲突可以由Follow 集解决,所以G 是SLR(1)文法。 构造的SLR(1)分析表如下:

状态 0 1 2 3 4 5 Action a s2 b r3 r3 s5 r1 r2 d r3 r3 s4 r1 r2 $ r3 acc r3 r1 r2 Goto A 1 3

对输入串ab的分析过程:

状态栈 0 02 023 0235 01 四、

$ $a $aA $aAb $A 文法符号栈 剩余输入串 ab$ 移进 b$ 按A→归约 b$ 移进 $ 按A→aAb归约 $ 接受 动作 分析成功,说明输入串ab 是文法的句子。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- gamedaodao.com 版权所有 湘ICP备2022005869号-6

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务