编译原理结构框架3词法分析

3 词法分析


重点:词法分析器的输入、输出,

        用于识别符号的状态转移图的构造,

        根据状态转移图实现词法分析器。

难点:词法的正规文法表示、正规表达式表示、

        状态转移图表示,它们之间的转换。


题型:1.根据正则文法构造等价的正则表达式

n 3.6 将如下文法 G 转换成相应的正则表达式

  S => aS|aB

  B => bB|bC|aB|bS

  C => cC|c

解析:

1.列方程组

n S = a * S    S = aB      
n B =( a | b ) * B     B = bC       B = bS     
n C = c * C       C = c

2.代入法解方程组

n C = c * c|c    

nB = bc * c | bc     
n B =( a | b ) * ( bc * c | bc )
n B =( a | b ) * bS   

n S = a * aB
n S = a * a ( a | b ) * bS | a * a ( a | b ) * ( bc * c | bc )
n S =( a * a ( a | b ) * b ) * a * a ( a | b ) * ( bc * c | bc )
n 如果用正闭包表示,则为 ( a + ( a | b ) * b ) * a + ( a | b ) * ( bc + | bc )

题型:2.将正则表达式转换成等价的正则文法
n 将正则表达式 a( a|b )* 转换为相应的正则文法
n 将正则表达式 a ( a | b ) * ( ε |((.|_)( a | b )( a | b ) * )) 转换成相应的正则文法

题型:3正则表达式转换为状态转换图
n 例子:构造 ε |(0|1)01 * | 0 + 的状态转换图

题型:4由正则文法构造状态转换图


测试:

1. 给定如下正则文法,构造与之等价的正则表达式

G:

 S => +R |-R

 R => 0R |1R | 2R  |3R | 4R | 0 | 1 | 2 | 3 | 4 |0D | 1D | 2D | 3D | 4D

 D => .B

 B => 0B |1B | 2B | 3B | 4B | 0 | 1 | 2 | 3 | 4

解析:

 R => (0|1|2|3|4) (R|D|ε)

 R => (0|1|2|3|4)*R

 R => (0|1|2|3|4) +(D|ε)


 B => (0|1|2|3|4) (B|ε)

 B => (0|1|2|3|4)+


 D => .(0|1|2|3|4)+


 R => (0|1|2|3|4) +( .(0|1|2|3|4)+ | ε)

 S => (+ | -) R

 S => (+ | -) (0|1|2|3|4) +( .(0|1|2|3|4)+ | ε)


2. 画出识别如下文法生成语言的有穷状态自动机的状态转换图

G:S => aS | aB | bB | bS

     B => -C |.C

    C => cC | dC | eC | fC | c| 0E | 1E | 2E | 3E | 4E

    E => -A |+A

    A => 0A |1A | 2A | 3A | 4A | 0 | 1 | 2 | 3 | 4










你可能感兴趣的:(编译原理结构框架3词法分析)