字母表:
字母表是符號的有窮非空集合。用「σ」符號表示字母表。常見的字母表包括:
σ=,二進位制字母表
σ=,所有小寫字母的集合
串:串(有時候被稱為單詞)是從某個字母表中選擇的符號的有窮序列。
空串:空串是出現0次符號的串。這個串記作ε,是可以從任何字母表中選擇的串。
串的長度:
串的長度,即串中的符號的位數。串的長度的標準記號是|w|。例如 |011|=3。
字母表的冪:
如果σ是乙個字母表,就可以用指數記號來表示這個字母表某個長度的所有串的集合。定義σk是長度為k的串的集合,而串的每個符號屬於σ。
串的連線:
設x和y都是串。於是,xy表示x和y的連線,也就是說,用x的乙個副本後面跟著y的乙個副本所形成的串。
克萊尼星號:
設集合s是乙個字元集合,則s*表示由這個字元集合中的字元組成的字串集合。
語言:σ是某個具體的字母表,全都從σ*中選出的串的某個集合表示語言。如果σ是字母表,並且l是σ*的子集,則l是σ上的語言。注意,σ上的語言不必包含帶有σ所有符號的串,所以一旦確定l是σ上的語言,也就知道了l是任何是σ超集(即包含集合σ的集合)的字母表上的語言。
關於什麼是語言,唯一重要的約束就是所有字母表都是有窮的。因此語言可以有無窮多個串,但限制這些串為從乙個固定的有窮字母表中取出的。
問題:在自動機理論中,乙個問題就是判定乙個給定的串是否是屬於某個具體語言的提問。更準確地說,如果σ是字母表,l是σ上的語言,則問題l就是:
集合表示法作為一種定義語言的方式,常用的「集合表示法」:,來描述乙個語言。這個表示式讀作:「單詞w的集合,使得w如此這般」
文法:g=(v,t,p,s),其中
文法的簡寫形式:
只寫產生式,如果幾個產生式的左端相同,則把右端的結果用」|「連線起來。第乙個產生式的左端符號表示起始符。
文法推導:
例如:
語言的文法定義:設g=(v,t,p,s)是一種文法,則由這種文法定義的語言定義為:
不同的推導型別:
文法的分類:
不同型別文法的區分:
1型文法:1)產生式的左邊可以有多個字元,但必須有乙個非終結符
2)產生式的右邊,可以是終結符,也可以是非終結符,但必須是有限個字元
2型文法:1)產生式的左邊只能有乙個字元,而且是非終結符
2)產生式的右邊,可以是終結符,也可以是非終結符,但必須是有限個字元
3型文法:1)產生式的左邊只能有乙個字元,而且是非終結符
2)產生式的右邊,最多只有兩個字元:i:如果只有乙個字元,那麼必須是終結符
ii:如果有兩個字元,那麼一定是乙個終結符和乙個非終結符
3型文法包括左線形文法、右線形文法、正規文法:
左線形文法:產生式的右部要麼沒有非終結符,如果有非終結符也只能有乙個,並且非終結符只能位於產生式右端的最左邊
右線形文法:產生式的右部要麼沒有非終結符,如果有非終結符也只能有乙個,並且非終結符只能位於產生式右端的最左邊
正規文法:正規文法是右線形文法的乙個子集,其產生式的右端只有三種情況:
空串只有乙個終結符
只有乙個終結符後接乙個非終結符
AC自動機理解
對於ac自動機可能有的疑問。首先上 該 使用char型陣列儲存,事實上string也完全可以。includeusing namespace std char s 1000005 struct tree 字典樹 ac 1000000 trie樹 int cnt 0 trie的指標 inline voi...
形式語言與自動機理論總結
一 圖形總結。重點 喬姆斯基體系 四大文法之間的關係 二 文字詳解。1,集合關係 並 交 補 差 笛卡爾積 冪積 二元關係 1 笛卡爾積 axb,即都分別對應的乘積。例1 1,a b 則 axb 2 冪積 2 a,即所有的子集。例1 2,a 則2 a 3 二元關係 任意的r a b,r 是a到b 的...
形式語言與自動機理論總結
一 圖形總結。重點 喬姆斯基體系 四大文法之間的關係 二 文字詳解。1,集合關係 並 交 補 差 笛卡爾積 冪積 二元關係 1 笛卡爾積 axb,即都分別對應的乘積。例1 1,a b 則 axb 2 冪積 2 a,即所有的子集。例1 2,a 則2 a 3 二元關係 任意的r a b,r是a到b的二元...