当前位置:文档之家› 编译原理作业集-第三章-修订版

编译原理作业集-第三章-修订版

第三章词法分析本章要点1.词法分析器设计,2.正规表达式与有限自动机,3.词法分析器自动生成。

本章目标:1.理解对词法分析器的任务,掌握词法分析器的设计;2.掌握正规表达式与有限自动机;3.掌握词法分析器的自动产生。

本章重点:1.词法分析器的作用和接口,用高级语言编写词法分析器等内容,它们与词法分析器的实现有关。

应重点掌握词法分析器的任务与设计,状态转换图等内容。

2.掌握下面涉及的一些概念,它们之间转换的技巧、方法或算法。

(1)非形式描述的语言↔正规式(2)正规式→ NFA(非确定的有限自动机)(3)NFA → DFA(确定的有限自动机)(4)DFA →最简DFA本章难点(1)非形式描述的语言↔正规式(2)正规式→ NFA(非确定的有限自动机)(3)NFA → DFA(确定的有限自动机)(4)DFA →最简DFA作业题一、单项选择题(按照组卷方案,至少15道)1. 程序语言下面的单词符号中,一般不需要超前搜索a. 关键字b. 标识符c. 常数d. 算符和界符2. 在状态转换图的实现中,一般对应一个循环语句a. 不含回路的分叉结点b. 含回路的状态结点c. 终态结点d. 都不是3. 用了表示字母,d表示数字, ={l,d},则定义标识符的正则表达式可以是:。

(a)ld*(b)ll*(c)l(l | d)*(d)ll* | d*4. 正规表达式(ε|a|b)2表示的集合是(a){ε,ab,ba,aa,bb} (b){ab,ba,aa,bb}(c){a,b,ab,aa,ba,bb} (d){ε,a,b,aa,bb,ab,ba}5. 有限状态自动机可用五元组(V T,Q,δ,q0,Q f)来描述,设有一有限状态自动机M的定义如下:V T={0,1},Q={q0,q1,q2},Q f={q2},δ的定义为:δ(q0,0)=q1δ(q1,0)=q2δ(q2,1)=q2δ(q2,0)=q2M所对应的状态转换图为。

6. 有限状态自动机可用五元组(V T,Q,δ,q0,Q f)来描述,设有一有限状态自动机M的定义如下:V T={0,1},Q={q0,q1,q2},Q f={q2},δ的定义为:δ(q0,0)=q1δ(q1,0)=q2δ(q2,1)=q2δ(q2,0)=q2M所能接受的语言可以用正则表达式表示为。

①(0|1)*②00(0|1)*③(0|1)*00④0(0|1)*07 . 有限状态自动机可用五元组(V T,Q,δ,q0,Q f)来描述,设有一有限状态自动机M的定义如下:V T={0,1},Q={q0,q1,q2},Q f={q2},δ的定义为:δ(q0,0)=q1δ(q1,0)=q2δ(q2,1)=q2δ(q2,0)=q2M所能接受的语言为。

①由0和1所组成的符号串的集合②以0为头符号和尾符号、由0和1所组成的符号串的集合③以两个0结束的,由0和1所组成的符号串的集合④以两个0开始的,由0和1所组成的符号串的集合8. 从接受语言的能力上来说,非确定型有穷自动机和________是等价的。

a. ⅰ.正规式;ⅱ.上下文无关文法;ⅲ.确定性有穷自动机;b. ⅰ.左线性正规文法;ⅱ.右线性正规文法;ⅲ.确定性有穷自动机;c. ⅰ.正规式;ⅱ.上下文无关文法;ⅲ.正规文法;d. ⅰ.正规式;ⅱ.确定性有穷自动机;ⅲ.下推自动机;9. 下面四个选项中,关于编译过程中扫描器的任务的叙述,________是较为完整且正确的。

①组织源程序的输入;按词法规则分割出单词,识别其属性,并转换成属性字的形式输出;删除注释;删除空格和无用字符;行计数、列计数;发现并定位词法错误;建立符号表。

②按词法规则分割出单词,识别其属性,并转换成属性字的形式输出;发现并定位词法错误;建立符号表;输出状态转换图;把状态转换图自动转换成词法扫描程序。

③组织源程序的输入;按词法规则分割出单词,识别其属性,并转换成属性字的形式输出。

④组织源程序的输入;按词法规则分割出单词,识别其属性,并转换成属性字的形式输出;行计数、列计数;发现并定位词法错误;建立符号表;输出状态转换图;把状态转换图自动转换成词法扫描程序。

10. 关于NFA的叙述中,下面______是不正确的。

A.有一个有穷字母表B.有多个初始状态C.有多个终止状态D.有多个有限状态11. 词法分析的理论基础是。

A.有穷自动机理论B.图灵机理论C.图论D.无穷自动机理论12. 设有两个状态S和T,如果从S出发能读出某个字w而停于终态,那么从T出发也能读出同样的字而停于终态;反之,果从T出发能读出某个字w而停于终态,那么从S出发也能读出同样的字而停于终态。

则我们称状态S和状态T是。

A. 可区分的;B. 等价的;C. 多余的;D. 无用的。

13. 词法分析器的输出结果是。

A、单词自身值B、单词在符号表中的位置C、单词的种别编码D、单词的种别编码和自身值14. 编译过程中扫描器的任务包括______。

①组织源程序的输入②按词法规则分割出单词,识别出其属性,并转换成属性字的形式输出⑧删除注解④删除空格及无用字符⑤行计数、列计数⑥发现并定位词法错误⑦建立符号表a.②③④⑦b.②③④⑥⑦c.①②③④⑥⑦d.①②③④⑤⑥⑦15. 下述正则表达式中______与(a*+b)*(c+d)等价(即有相同符号串集)。

(x+y亦可写作x|y)①a*(c+d)+b(c+d)②a*(c+d)*+b(c+d)*③a*(c+d)+b(c+d)④(a+b)*c+(a+b)*d⑤(a*+b)*c+(a*+b)*da.①③b. ③④⑤c.③d.④⑤16、正则式的“*”读作______。

a,并且L或者c.连接d.闭包17. 在状态转换图中,结点代表,用圆圈表示。

a.输入缓冲区b.向前搜索c.状态d.字符串18. 与(a|b)*(a|b)等价的正规式是。

A. a*| b*B. (ab)*(a|b)*C. (a|b)(a|b)*D. (a|b)*19.无符号常数的识别和拼数工作通常都在阶段完成。

A.词法分析B.语法分析C.语义分析D.代码生成一.答案:1. b;2. b;3. c;4. d;5.②;6. ②,7.④;8. b;9. ①;10. B;11. A;12. B;13. d;14. d;15.d;16.d;17.c;18. C;19. A二、填空题:(按照组卷方案,至少15道)1. 词法分析器对扫描缓冲区进行扫描时一般用两个指示器,一个_________________________________;另一个_____________________________________。

2. 一个确定性有限自动机DFA M的化简是指:寻找一个状态数比M少的DFA M’,使得。

3. 词法分析器所的输出常表示成如下形式的二元式:(______________,_________________)。

4. 一个状态转换图只包含有限个状态,其中有一个被认为是________,而且实际上至少有一个________。

5. 把状态转换图用程序实现时,对于含有回路的状态结点来说,可以让它对应一个_____________________________________程序段。

6. 词法分析阶段的任务式从左到右扫描,从而逐个识别。

7. 如果一个种别只含有一个单词符号,那么,对于这个单词符号,就可以完全代表它自身了。

8. 单词符号的属性值是指单词符号的特性或特征,其属性值则是反映特性或特征的值。

比如,对于某个标识符,常将作为其属性值。

9. 单词符号的属性值是指单词符号的特性或特征,其属性值则是反映特性或特征的值。

比如,对于常数,常将作为其属性值。

10. 如果一个种别含有多个单词符号,那么,对于它的每个单词符号,除了给出种别编码以外,还应给出有关。

11. 如果,则认为这两个正规式等价。

12. 对于∑*中的任何符号串α,如果存在一条从初态结点到某一终态结点的通路,且,则称α被该自动机所接受(识别)。

13. 一个Lex源程序主要包括两部分,一部分是,另一部分是。

14. 一个DFA可用一个矩阵表示,该矩阵的行表示,列表示,矩阵元素表示。

这个矩阵叫状态转换矩阵。

15. 对于词法分析程序来说,当程序到达“错误处理”时,意味着现行状态i和当前所面临的输入串不匹配。

如果后面还有状态图,出现在这个地方的代码应该为:。

二.答案:1. 指向当前正在识别的单词符号的开始位置,用于向前搜索以寻找单词符号的终点;2. L(M)=L(M');3. 单词种别,单词符号的属性值;4. 初态,终态;5. 由while和if 语句构成的;6. 源程序,单词;7. 种别编码;8. 存放它的有关信息的符号表项的指针;9. 存放它的常数表项的指针;10. 单词符号的属性信息(属性值);11. 两个正规式所表示的正规集相同;12. 这条通路上所有弧的标记符号连接起来形成的符号串等于α;13. 正规定义式,识别规则;14. 状态,输入字符,转换函数(或δ(s, a))的值;15. 将搜索器回退一个位置,并令下一个状态图开始工作。

三、判断题:(按照组卷方案,至少15道)1.NFA M的非确定性表现在它有多个终态。

()2. 有穷自动机接受的语言是正则语言。

()3. 若r1和r2是Σ上的正规式,则r1|r2也是。

()4. 设M是一个NFA,并且L(M)={x,y,z},则M的状态数至少为4个。

()5. 令Σ={a,b},则Σ上所有以b为首的字符构成的正规集的正规式为b*(a|b)*。

()6. 对任何一个NFA M,都存在一个DFA M',使得L(M')=L(M)。

()7. 对一个右线性文法G,必存在一个左线性文法G',使得L(G)=L(G'),反之亦然。

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

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

( )10. 对任何正则表达式r,都存在一个NFA M,满足L(M)=L(r)。

( )11. 对任何正则表达式r,都存在一个DFA M,满足L(M)=L(r)。

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

()13. 一个正规式只能对应一个有限状态自动机;()14. 在词法分析的状态转换图中,有些结点是带星号的,这些结点肯定是终态结点。

()15. 适当设置扫描缓冲区的大小(比如容纳256个字符)可以保证单词符号不会被它的边界所打断。

()四.答案:1. ×;2. √;3. √;4. ×;5. ×;6. √;7. √;8. √;9. √;10. √;11. √;12×;13. ×;14. √;15. ×;四、名词解释:(按照组卷方案,至少5道)1. 状态转换图;2. 正规式(正规表达式、正则表达式)的形式化定义;3. 给出确定性有限状态自动机的形式化定义;4. 给出非确定性有限状态自动机的形式化定义;5. DFA状态最小化。

相关主题