长安大学《编译原理》编译原理试卷.docVIP

  • 81
  • 0
  • 约5.07千字
  • 约 11页
  • 2018-01-15 发布于浙江
  • 举报

长安大学《编译原理》编译原理试卷.doc

第三章 3.2.2描述下列正则表达式代表的语言。 a) a(a|b)*a b) (( ε|a)b*)* c) (a|b)*a(a|b)(a|b) d) a*ba*ba*ba* e) (aa|bb)*((ab|ba)(aa|bb)*(ab|ba)(aa|bb)*)* 答案 (a) 由a开头并结尾的由a 和b构成的字符串 (b)由 a 和 b 构成的字符串 (c) 倒数第三位为 a 的由 a 和 b 构成的字符串 (d) 仅含3 个 b 的由 a 和 b 构成的字符串 (e) 含有偶数个 a 和偶数个 b 的由 a 和 b 构成的字符串 注意: 请准确描述语言的性质而不是列举满足正则表达式的串 3.4 对于下列语言分别写出它们的正规表达式。 (1) 英文字母组成的所有符号串,要求符号串中顺序包含五个元音。 (2) 英文字母组成的所有符号串,要求符号串中的字母依照词典顺序排列。 (3) Σ={0,1}上的含偶数个1的所有串。 (4) Σ={0,1}上的含奇数个1的所有串。 (5) 具有偶数个0和奇数个1的有0和1组成的符号串的全体。 (6) 不包含子串011的由0和1组成的符号串的全体。 (7) 由0和1组成的符号串,把它看成二进制数,能被3整除的符号串的全体。 答案 (1)?令Letter表示除这五个元音外的其它字母。 ???((letter)*A(letter)*E(letter)*I(letter)*O(letter)*U(letter))* (2)?A*B*....Z* (3)?(0|10*1)* (4)?(0|10*1)*1 (5)?[分析] 设S是符合要求的串,|S|=2k+1 (k≥0)。 则 S→S10|S21,|S1|=2k (k0),|S2|=2k (k≥0)。 且S1是{0,1}上的串,含有奇数个0和奇数个1。 ?S2是{0,1}上的串,含有偶数个0和偶数个1。 考虑有一个自动机M1接受S1,那么自动机M1如下: 和L(M1)等价的正规表达式,即S1为: ((00|11)|(01|10)(00|11)*(01|10))*(01|10)(00|11)* 类似的考虑有一个自动机M2接受S2,那么自动机M2如下: 和L(M2)等价的正规表达式,即S2为: ((00|11)|(01|10)(00|11)*(01|10))* 因此,S为: ((00|11)|(01|10)(00|11)*(01|10))*(01|10)(00|11)*0| ((00|11)|(01|10)(00|11)*(01|10))*1 (6)1*|1*0(0|10)*(1|ε) (7)接受w的自动机如下: 对应的正规表达式:(1(01*0)1|0)* 3.6.3 对于图 3.29 表示的 NFA, 列出 aabb 的所有路径。这个 NFA 能否接受 aabb? 答案: aabb 的所有路径 01223 00111 012000 00000 01222 00011 00123 存在路径 1223 和 0123 所以能接受 aabb 3.7.1 把下列 NFA 转化为 DFA (a) 图 3.26 (b) 图 3.29 (c) 图 3.30 答案 : (a) (b) (c) A 3.7.3 用算法 3.23 和 a) (alb)* 答案: a) NFA DFA NFA State DFA State a b {0,1,2,3,7} A B C {1,2,3,4,6,7} B B C {1,2,3,5,6,7} C B C 第四章 4.6.5证明下面的文法是LL(1)文法,但不是SLR(1)文法 S→AaAb|BbBa A→ε B→ε 解:对于产生式S→AaAb|BbBa 来说FIRST(AaAb)∩FIRST(BbBa)={a}∩{b}=Φ 而A,B∈VN仅有一条候选式。因此,这个文法是LL(1)的。下面构造这个文法的识别活前缀的DFA。I0 = {S→·S, S

文档评论(0)

1亿VIP精品文档

相关文档