编译原理习题

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

作业一

1.已知文法G[A],写出它定义的语言描述

如:G[A]:

A → 0B|1C

B → 1|1A|0BB

C → 0|0A|1CC

2. 给出生成下述语言的上下文无关文法:

(1){ a n b n a m b m| n,m>=0}

(2) { 1n0m 1m0n| n,m>=0}

3. 给出生成下述语言的三型文法:

(1){ a n b m|n,m>=1 }

(2){a n b m c k|n,m,k>=0 }

4、文法G[E]为:E→E+T|T

T→T*F|F

F→(E)|i

试给出句型(E+F)*i的短语,简单(直接)短语,句柄。

第3章练习题

一、判断题:

1、编译程序中的词法分析程序以字符形式的源程序作为输入,输出的单词符号常

采用二元组的形式。

2、正规式的运算符“|”读作“或“。

3、若两个正规式所表示的正规集相同,则认为二者是等价的。

4、用l代表字母,d代表数字,Σ={l,d},则正规式r=dd*定义了无符号整数单词。

5、一个确定的有穷自动机DFA M的转换函数f是一个从KⅹΣ到K 的子集的映像。

6、一个非确定的有穷自动机NFA N 的转换函数f是一个从KⅹΣ*到K 的映像。

7、一张状态转换图只包含有限个状态,其中有一个被认为是初态,最多只有一个终态。

8、终态与非终态是可区别的。

9、对任意一个右线性文法G,都存在一个NFA M,满足L(G)=L(M)。

10、对任意一个右线性文法G,都存在一个DFA M,满足L(M)=L(R)。

二、构造正规式1(0|1)*101相应的DFA.

练习题2

一、判断题:

1、空符号串的集合{ε}={}=ф。

2、设A是符号串的集合,则A0=ε。

3、设G是一个文法,S是开始符号,如果S => x且x∈V T*,则称x是文法G[S]的句型。

4、在形式语言中,最右推导的逆过程也称为规范归约。

5、一个语言的文法是唯一的。

6、若一个语言是无穷集合,则定义该语言的文法一定是递归的。

7、一个句型中出现某个产生式的右部,则此右部一定是此句型的句柄。

8、每个直接短语都是某规则的右部。

9、用二义性文法定义的语言也是二义性的。

10、文法的二义性与语言的二义性是两个不同的概念。

11、任何正规文法都是上下文无关文法。

12、正规文法对规则的限制比上下文无关文法对规则的限制要多一些。

二、选择题(从各题的4个答案中选出一个或多个正确的答案写在横线上)

(1)一般程序设计语言的描述都涉及()3个方面。

A 语法

B 语用

C 语义

D 基本符号的确定

(2)为了使编译程序能对程序设计语言进行正确的翻译,必须采用()方法定义程序设计语言。

A非形式化B自然语言描述问题C形式化 D自然语言和符号体系相结合

(3)设x是符号串的幂运算 x0=()。

A 1

B x

C ε

D Φ

(4)设A是符号串的集合,则A*=()。

A A1∪A2∪…∪A N∪…

B A0∪A1∪A2∪…∪A N∪…

C {ε}∪A+

D A0∪A+

(5)字母表中的元素可以是()

A 字母 B字母和数字 C 数字

D字母、数字和其他符号

(6)文法用来描述语言的语法结构,它由如下4个部分组成:()和文法开始符号。

A文法终结符集合

B 文法规则的集合

C 文法非终结符集合

D字母数字串

(7)在规则中,符号“→”(::=)表示()。

A 恒等于

B 等于

C 取决于

D 定义为

(8)在规则中,符号“|”表示()。

A 与

B 或

C 非

D 定引导开关参数

(9)设文法G[E]的规则如下:

A→A1|A0|Aa|Ac|a|b|c ,该文法的句子是下列符号串()

A ab0

B a0c01

C aaa

D bc10

(10) 如果在推导过程中的任何一步α=>β,都是对α中的最右非终结符进行替换,则称这种推导为()。

A.直接推导 B.最右推导 C. 最左推导 D.规范推导

(11)描述语言L={a m b n|n≥m≥1}的文法为()。

A.S→ABb

B.S→ABb

A→aA|a A→aA|a

B→bB|b B→aBb | b

C. S→Sb |A

D.S→aAb

A→aAb |ab A→Ab|aAb|ε

(12) 设有文法G[S]=({S,B} {b}, {S→bB |b ,B→bS}, S),该文法描述的语言是()。

A.L(G[S])={b n|n ≥0}

B.L(G[S])={b2n |n ≥0}

C.L(G[S])={b2n+1|n ≥0}

D. L(G[S])={ b2n+1|n ≥1}

(13) 一个句型最左边的()称为该句型的句柄。

A.短语 B.素短语 C. 直接短语 D.规范短语

(14)设有文法G[S]:

E→E+T | E-T |T

T→T*F |T/F|F

F→(E) |i

该文法的句型E+T*F的句柄是下列符号串()。

A E

B E+T

C T*F

D E+T*F

(15) 设有文法G[T]:

T→T*F |F

F→F^P | P

P→(T) |a

该文法的句型T*P^(T*F)的直接短语是下列符号串()。

A. P

B. (T*F)

C. T*F

D. P^(T*F)

(16) 若一个文法满足(),则称该文法是二义文法。

A.文法的某一个句子存在两棵(包括两棵)以上的语法树。

B.文法的某一个句子,它有两个(包括两个)以上的最右(最左)推导。

C.文法的某一个句子,它有两个(包括两个)以上的最右(最左)归约。

D.文法的某一个句子存在一棵(包括一棵)以上的语法树。

(17) 在下列描述含+,*算术表达式的文法中,属于二义性文法的是()。

A.E→E+E|E*E|(E)|i B.E→EAE|(E)|i

A→+|*

C. E→E+T |T

D.E→EAE|T

T→T*F | F T→TBF|F

F→(E) |I F→(E)|i

A→+

B→*

(18)乔姆斯基把文法分成4种类型,即0型、1型、2型和3型。2型文法也称为()、3型文法也称为()。

A.上下文无关文法

B.正规文法

C. 上下文有关文法 B.无限制文法

1、如下程序流图(图11.18)中,B3中的i∶=2是循环不变量,可以将其提到前置结点吗?你还能举出一些例子说明循环不变量外移的条件吗?

相关文档
最新文档