形式語言


字母表和串

定義

字母表:指一個有限的非空符號集∑,∑中元素稱為字母

:∑*為所有由∑中元素生成的有限長度序列全體,∑*中元素稱為∑上的詞(world)或串(string),即串是有限長度的符號序列

空串:*中的空序列稱為空串,習慣上使用λ或ε表示,用Λ表示集合{λ}

概念

串的長度:串w中所含字母的個數(即序列的項數),記作|w|

可以這樣理解,字母表是有限的符號集,串是有限長度的符號序列

連接運算:假設$w_1 = s_{1}s_{2}s_{3}...s_{n}$和$w_{2} = t_{1}t_{2}t_{3}...t_{n}$都是字母表∑上的串,則$w_1$和$w_2$的連接定義為$s_{1}s_{2}s_{3}...s_{n}t_{1}t_{2}t_{3}...t_{n}$,記作$w_{1}°w_{2}$或$w_{1}w_{2}$,°稱作∑*上的連接運算

 常見的字母表有:

  • ∑={0,1},二進制字母表
  • ∑={a,b,c,...z},所有小寫字母的集合
  • 所有ASCII字符的集合,或者所有課打印的ASCII字符的集合

w的n次冪:假設w是字母表∑上的串,則可以定義w上的n次冪wn為:(遞歸定義)

  • w0 = λ
  • wn = wn-1°w,n≥1

前綴、真前綴、后綴、真后綴:

假設x,y,z是字母表∑上的串,且x=yz,則

  • 稱y是x的前綴(prefix
  • 如果z∉λ,則稱y是x的真前綴(proper prefix
  • 稱z是x的后綴(suffix
  • 如果y∉λ,則稱y是x的真后綴(proper suffix

字串:假設x,y是字母表Σ上的串,且存在字母表∑上的串z,w,使得x = zyw,則稱y是x的字串(substring

易知,字符串w的前綴個數|x|+1,后綴個數|x|+1,字串個數n(n+1)/2 + 1

 

形式語言

語言

分為自然語言和形式語言

自然語言:詞匯、發音及其組合方法,以在一個社會群體中使用和理解,這通常稱為自然語言(nature language

形式語言:一種由標記和符號組成的形式化系統,包括該系統所容許的表達式的形成和轉換的規則,這通常稱為形式語言(formal language

后者常用於建立自然語言模型及同計算機通信。

自然語言的規則及其復雜且難以規則化,而形式語言可以通過一些確定的語言構造。

語言的定義

語言是符合語法的句子的集合,下面來定義形式的“語言”:

設∑是有限字母表,∑*上的任一個子集都稱為∑上的語言language),語言L的元素稱為句子

  • ∑上語言的串不必包含∑上的所有符號
  • 語言可分為有窮語言和無窮語言

語言的運算

連接運算:設L1和L2是有限字母表∑上的兩個語言,則可定義L1與L2的連接L1°L2為

                                              L1°L2={αβ|α∈L1,β∈L2}

L1°L2也可簡寫做L1L2,通常來講L1L2 ≠ L2L1,即不滿足交換律

假設∑是一個字母表,則φ(∑*)即為∑上所有語言的全體,它在語言的連接運算下也形成特定的代數結構

定理:假設∑是一個字母表,則(φ(∑*),°)構成一個半群

n次冪:設L是有限字母表∑上的語言,定義L的n次冪Ln

  • L0 = Λ
  • Ln = Ln-1 ° L,n≥1

正閉包和星閉包:

設L是有限字母表∑上的語言

L的正閉包$L^{+} = L^{1}{\cup}L^{2}{\cup}L^{3}{\cup}...$

L的星閉包$L^{*} = {\Lambda}{\cup}{L^{+}} = L^{0}{\cup}L^{1}{\cup}L^{2}{\cup}L^{3}{\cup}...$

例如,${\Lambda}^{+} = {\Lambda}^{*} = {\Lambda}$

 

 

參考鏈接:中國大學mooc 劉鐸 離散數學

 

 

 

 

        


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM