語言及文法筆記
語言的定義與運算
- 字符的有限集合稱爲字母表,記爲T
- 由字母表T中的字符構成的有限序列稱爲字母表T上的字符串
- 設ω1和ω2是字母表T上的字符串,ω1=a1a2...amω2=b1b2...bn則ω1ω2=a1a2...amb1b2...bn
- T∗是字母表T上所有字符串和空串的集合,T+是字母表T上的所有字符串構成的集合,並有T+=T∗−ϵ
- 字母表T上的語言L是T∗的子集
- 兩個語言L1和L2的積L1⋅L2,是由L1和L2中字符串的連接所構成的字符串的集合,需要注意L1⋅L2=L2⋅L1
- 語言L的冪可歸納定義如下:
L0=ϵLn=L⋅Ln−1,n≥1
- 語言L的閉包L∗定義爲
L∗=n≥0⋃Ln語言L的正閉包L+定義爲L+=n≥1⋃Ln
文法(Chomsky文法體系)
-
文法G是一個四元組,G=N,T,P,S其中
(1)N 非終結符的有限集合
(2)T 終結符的有限集合,且N⋂T=ϕ
(3)P 形式爲α→β的生成式有限集合,且α∈(N⋃T)+β∈(N⋃T)∗且α至少含一個非終結符號
(4)S 起始符,且S∈N
其中“→”含義是可被代替
-
字符串α是文法G的句型,當且僅當S⟹G∗α且α∈(N⋃T)∗ω是G的句子,當且僅當S⟹G∗ω且ω∈T∗
文法的分類
0型文法
由定義1定義的不加任何限制的文法
由0型文法產生的語言稱爲無限制性語言
1型文法(上下文有關文法)
生成式的形式爲α→β,其中∣α∣≤∣β∣,且α,β∈(N⋃T)+,且α至少含有一個非終結符號。
P特點:每個生成式左部字符串長度小於等於右部字符串長度
由1型文法產生的語言稱爲上下文有關語言
2型文法(上下文無關文法)
生成式的形式爲A→α,A∈N且α∈(N⋃T)+
P特點:每個生成式的左部是單個非終結符
由2型文法產生的語言稱爲上下文無關語言
其常見表示形式有
(1) 巴科斯範式(BNF, Backus Normal Form)
例:用BNF表示法描述十進制數的文法的生成式
<十進制數>::=<無符號整數>|<十進制小數>|<無符號整數><十進制小數>
<十進制小數>::=.<無符號整數>
<無符號整數>::=<數字>|<數字><無符號整數>
<數字>::=0|1|2|3|4|5|6|7|8|9
(2) 語法圖
- 每一個語法圖表示一個語法規則
- 圓邊框或圓形框內書寫的是“終結符號”
- 矩形框內所寫的則是“非終結符號”
- 用語法圖定義語法規則的過程類似於“自頂向下,逐步細化”的過程
- 語法圖與流程圖不同,語法圖只規定了語法的內容和次序,與步驟無關
3型文法(正則文法)
右線性文法:生成式的形式爲A→ωB或A→ω,A,B∈N,ω∈T∗
左線性文法:生成式的形式爲A→Bω或A→ω,A,B∈N,ω∈T∗
由3型文法產生的語言稱爲正則語言
文法之間的關係(若無A→ω,則爲包含關係)
1、2、3型文法都是在0型聞法得前提下所加的限制,所以必然屬於0型文法
1型文法不允許形式爲A→ω的生成式存在,所以具有A→ω生成式的2型文法或3型文法不屬於1型文法
如果2型文法或3型文法沒有A→ω生成式存在,則其屬於1型文法