23
1 形形形形形 形形形形形

形式语言和 自动机初步

  • Upload
    etan

  • View
    88

  • Download
    0

Embed Size (px)

DESCRIPTION

形式语言和 自动机初步. 第 11 章 形式语言和自动机初步. 11.1 形式语言和形式文法 11.2 有穷自动机 11.3 有穷自动机和正则文法的等价性 11.4 图灵机. 11.1 形式语言与形式文法. 字符串和形式语言 形式文法 形式文法的分类 0 型文法 1 型文法 或上下文有关文法 2 型文法 或上下文无关文法 3 型文法 或正则文法. 语言的基本要素. 形式语言 字符 字母表 字符串 形式文法. 汉语 字符 : 汉字和标点符号 字符集 : 合法字符的全体 句子 : 一串汉字和标点符号 语法 : 形成句子的规则. - PowerPoint PPT Presentation

Citation preview

Page 1: 形式语言和   自动机初步

1

形式语言和 自动机初步

Page 2: 形式语言和   自动机初步

2

第 11 章 形式语言和自动机初步 11.1 形式语言和形式文法

11.2 有穷自动机

11.3 有穷自动机和正则文法的等价性

11.4 图灵机

Page 3: 形式语言和   自动机初步

3

字符串和形式语言 形式文法 形式文法的分类

0 型文法 1 型文法 或上下文有关文法 2 型文法 或上下文无关文法 3 型文法 或正则文法

11.1 形式语言与形式文法

Page 4: 形式语言和   自动机初步

4

语言的基本要素

汉语字符 : 汉字和标点符号字符集 : 合法字符的全体句子 : 一串汉字和标点符

号语法 : 形成句子的规则

形式语言字符字母表字符串形式文法

Page 5: 形式语言和   自动机初步

5

字符串字母表 Σ: 非空的有穷集合字符串 : Σ 中符号的有穷序列 如 Σ ={a,b}

a, b, aab, babb

字符串 ω 的长度 |ω|: ω 中的字符个数 如 |a|=1, |aab|=3

空字符串 ε: 长度为 0, 即不含任何符号的字符串an : n 个 a 组成的字符串Σ*: Σ 上字符串的全体

Page 6: 形式语言和   自动机初步

6

子字符串 ( 子串 ):

字符串中若干连续符号组成的字符串前缀 : 最左端的子串后缀 : 最右端的子串例如 ω =abbaab

a,ab,abb 是 ω 的前缀 aab,ab,b 是 ω 的后缀 ba 是 ω 的子串 , 但既不是前缀 , 也不是后缀 ω 本身也是 ω 的子串 , 且既是前缀 , 也是后缀 ε 也是 ω 的子串 , 且既是前缀 , 也是后缀

Page 7: 形式语言和   自动机初步

7

字符串的连接运算设 α=a1a2 … an, β= b1b2 … bm,

αβ=a1a2 … anb1b2 … bm 称作 α 与 β 作的连接 如 α=ab, β=baa, αβ=abbaa, βα=baaab

对任意的字符串 α, β, γ

(1) (αβ)γ=α(βγ)

即 , 连接运算满足结合律 (2) εα=αε=α

即 , 空串 ε 是连接运算的单位元

n 个 α 的连接记作 αn

如 (ab)3= ababab, α0=ε

Page 8: 形式语言和   自动机初步

8

形式语言定义 : Σ* 的子集称作字母表 Σ 上的形式语言 ,

简称 语言例如 Σ={a,b}

A={a,b,aa,bb}

B={an | n∈N}

C={anbm | n,m≥1}

D={ε}

空语言 Ø

Page 9: 形式语言和   自动机初步

9

形式文法

一个例子——标识符< 标识符 > : < 字母 > | < 下划线 > | < 标识符 > <

字母 > | < 标识符 > < 下划线 >| < 标识符 >< 数字 >

< 字母 > : a | b | … | z | A | B | … | Z

< 下划线 > : _

< 数字 > : 0 | 1 | … | 9

Page 10: 形式语言和   自动机初步

10

形式文法的定义

定义 形式文法是一个有序 4 元组 G=<V,T,S,P >,

其中(1) V 是非空有穷集合 , V 的元素称作变元或非终极符(2) T 是非空有穷集合且 V∩T =Ø, T 的元素称作终极符(3) S∈V 称作起始符(4) P 是非空有穷集合 , P 的元素称作产生式或改写规则 ,

形如 α→β, 其中 α,β∈(V∪T)* 且 α≠ε.

Page 11: 形式语言和   自动机初步

11

文法生成的语言设文法 G = <V,T,S,P>, ω, λ∈(V∪T)*,

ω λ: 存在 α→β∈P 和 ξ,η∈(V∪T)*, 使得 ω= ξαη, λ= ξβη

称 ω 直接派生出 λ.

ω λ: 存在 ω1, ω2, … , ωm, 使得 ω= ω1 ω2 … ωm= λ

称 ω 派生出 λ.

恒有 ω ω ( 当 m=1 时 )

是 的自反传递闭包

*

*

*

Page 12: 形式语言和   自动机初步

12

文法生成的语言 定义 设文法 G= <V,T,S,P >, G 生成的语言 L(G)={ω∈T* ∣S ω}

L(G) 由所有满足下述条件的字符串组成 :

(1) 仅含终结符 ;

(2) 可由起始符派生出来 .

定义 如果 L(G1)= L(G2), 则称文法 G1 与 G2 等价 .

*

Page 13: 形式语言和   自动机初步

13

举例例 1 文法 G1= <V,T,S,P>, 其中 V={S}, T={a,b},

P: S→aSb | ab

L(G1)={anbn | n>0}

例 2 文法 G2= <V,T,S,P>, 其中 V={A,B,S}, T={0,1},

P: S→1A, A→0A | 1A | 0B, B→0

L(G2)={1x00 | x{0, 1}*}

例 3 文法 G3= <V,T,S,P>, 其中 V={A,B,S}, T={0,1},

P: S→B0, B→A0, A→A1 | A0, A→1

L(G3)= L(G2), G3 与 G2 等价

Page 14: 形式语言和   自动机初步

14

例 4 G= <V,T,S,P>, 其中 V={S,A,B,C,D,E}, T={a},

P: (1) S→ACaB (2) Ca→aaC (3) CB→DB

(4) CB→E (5) aD→Da (6) AD→AC

(7) aE→Ea (8) AE→ε

试证明 : i 1, S

证 : a2 和 a4 的派生过程 S ACaB (1)

AaaCB (2)

AaaE (4)

AEaa 2 次 (7)

a2 (8)*

i

a2*

举例 ( 续 )

Page 15: 形式语言和   自动机初步

15

例 4 ( 续 )

S AaaCB

AaaDB (3)

ADaaB 2 次 (5)

ACaaB (6)

AaaaaCB 2 次 (2)

AaaaaE (4)

AEaaaa 4 次 (7)

a4 (8)

*

*

*

*

Page 16: 形式语言和   自动机初步

16

例 4( 续 )

先用归纳法证明 i 1,

当 i=1 时结论成立 , 假设对 i 结论成立 ,

(3)

2i 次 (5)

(6)

2i 次 (2)

得证对 i +1 结论成立 , 故对所有的 i 成立 .

CBAai2*S

* CBAai2

DBAai2

BADai2

BACai2

CBAai 12

*

*

S

Page 17: 形式语言和   自动机初步

17

例 4 ( 续 )

于是 , i 1,

(4)

2i 次 (7)

(8)

可以证明 :

L(G) = { | i 1}i

a2

* CBAai2

EAai2

i

AEa2

i

a2

*

S

Page 18: 形式语言和   自动机初步

18

形式文法的分类 —Chomsky 谱系0 型文法 ( 短语结构文法 , 无限制文法 )

1 型文法 ( 上下文有关文法 ):

所有产生式 α→β, 满足 |α||β|

另一个等价的定义 : 所有的产生式形如 ξAη→ξαη

其中 AV, ξ,η,α(V∪T)*, 且 αε2 型文法 ( 上下文无关文法 ): 所有的产生式形如 A→α 其中 AV,α(V∪T)*,

Page 19: 形式语言和   自动机初步

19

形式文法的分类 ( 续 )

3 型文法 ( 正则文法 ): 右线性文法和左线性文法的统称右线性文法 : 所有的产生式形如 A→αB 或 A→α左线性文法 : 所有的产生式形如 A→Bα 或 A→α其中 A,BV,αT*

例 1 是上下文无关文法例 2 是右线性文法 , 例 3 是左线性文法 , 都是正则文法例 4 是 0 型文法

Page 20: 形式语言和   自动机初步

20

Chomsky 谱系0 型语言 : 0 型文法生成的语言1 型语言 ( 上下文有关语言 ): 如果 L-{ε} 可由 1 型文法 生成 , 则称 L 是 1 型语言2 型语言 ( 上下文无关语言 ) : 2 型文法生成的语言3 型语言 ( 正则语言 ): 3 型文法生成的语言 如 {1x00 | x{0, 1}*} 是正则语言 ( 例 1)

{anbn | n>0} 是上下文无关语言 ( 例 2,3)

{ | i 1} 是 0 型语言 ( 例 4)

定理 0 型语言 1 型语言 2 型语言 3 型语言

i

a2

Page 21: 形式语言和   自动机初步

21

描述算术表达式的文法

G={{E,T,F},{a,+.-.*,/,(,)},E,P}

其中 E: 算术表达式 , T: 项 ,

F: 因子 , a: 数或变量 P: E → E+T | E-T | T

T → T*F | T/F | F

F → (E) | a

这是上下文无关文法

Page 22: 形式语言和   自动机初步

22

左、右线性文法的等价性定理 设 G 是右 ( 左 ) 线性文法 , 则存在左 ( 右 )

线 性文法 G 使得 L(G )=L(G).

证明 : G 用模拟 GG= <V,T,S,P > G= <V∪{S},T,S,P>P: A→αB P: B→Aα

A→α S→Aα

S→ε

Page 23: 形式语言和   自动机初步

23

一个实例——模拟例 2 中的 G2

可删去 G2 中的 S, 这实际上就是 G3

G2= <V,T,S,P > G2 = <V ,T ,S ,P > V={A,B,S} V ={A,B,S,S} T={0,1} T ={0,1} P: S→1A P: A→S1 A→0A A→A0 A→1A A→A1 A→0B B→A0 B→0 S→B0 S→ε