上下文無關(guān)語言

上下文無關(guān)文法能夠描述某些具有遞歸結(jié)構(gòu)的特征嗤栓。

上下文無關(guān)文法的應(yīng)用:

  • 研究人類語言禀晓。在名詞原环、動詞、介詞以及他們的短語之間的關(guān)系中存在自然的遞歸贿条。

  • 程序設(shè)計語言的規(guī)范說明和編譯雹仿。

3.1 上下文無關(guān)文法

例子,G_1:

A \rightarrow 0A1

A \rightarrow B

B \rightarrow \sharp

一個文法由一組替換規(guī)則產(chǎn)生,替換規(guī)則又叫做產(chǎn)生式整以。

格式:符號 箭頭 字符串

符號:變元

字符串:變元+終結(jié)符組成

起始變元:通常第一條規(guī)則的左邊

3.1.1 上下文無關(guān)文法的形式定義

定義3.1 上下文無關(guān)文法是一個4元組(V, \Sigma, R, S), 這里

1)v是一個有窮集合胧辽,稱作變元集。

  1. \Sigma是一個與V不相交的有窮集合公黑,稱作終結(jié)符集邑商。

  2. R是一個有窮的規(guī)則集摄咆,每一條規(guī)則是一個變元和一個有變元和終結(jié)符組成的字符串。

  3. S \in V是起始變元人断。

3.1.2上下文無關(guān)文法舉例

考慮文法G_3=(\{S\}, \{a, b\}, R, S\})豆同,其中規(guī)則集R為:

S \rightarrow aSb|SS|\epsilon

如果把a看作左括弧"("、b看作右括弧")"含鳞,可以看出L(G_3)是所有正常嵌套的括弧字符串構(gòu)成的語言。

考慮文法G_4=(V, \Sigma, R, <EXPR>)芹务,其中V=\{<EXPR>, <TERM>, <FACTOR>\}蝉绷,\Sigma=\{a, +, \times , (, )\},規(guī)則為:

<EXPR> \rightarrow <EXPR> + <TERM> | <TERM>

<TERM> \rightarrow <TERM> \times <FACTOR> | <FACTOR>

$<FACTOR> \rightarrow (<EXPR>) | a$$

3.1.3 設(shè)計上下文無關(guān)文法

1 許多CFG是由幾個比較簡單的CFG合并成的枣抱。分成幾部分熔吗,并且分別構(gòu)造每一部分的文法。

部分:S_1, S_2, \dots, S_k

加入新規(guī)則:S \rightarrow S_1|S_2|\dots |S_k

2 如果這個語言碰巧是正則的佳晶,可以先構(gòu)造它的DFA桅狠,然后在構(gòu)造它的CFG。轉(zhuǎn)化方法:

對于DFA的每一個狀態(tài)q_i轿秧,設(shè)一個變元R_i中跌,如果\delta(q_i, a**=q_j是DFA中的一個轉(zhuǎn)移函數(shù),則把規(guī)則R_i \rightarrow a R_j加入CFG菇篡;

如果q_i是DFA的接受狀態(tài)漩符,則把規(guī)則R_i \rightarrow \epsilon加入CFG;

設(shè)q_0是DFA的起始狀態(tài)驱还,則取R_0作為CFG的起始變元嗜暴。

3.1.4 歧義性

最左派生

當(dāng)已知一個歧義文法,有時能找到一個產(chǎn)生相同語言的非歧義文法议蟆,但某些上下文無關(guān)語言只能用歧義文法產(chǎn)生闷沥,這樣的語言稱為固有歧義的。

3.1.5 喬姆斯基范式

定義3.5 一個上下文無關(guān)文法為喬姆斯基范式咐容,如果他的每一個規(guī)則具有如下形式:

A \rightarrow BC

A \rightarrow a

定理3.6 任何一個上下文無關(guān)語言都能用喬姆斯基范式的上下文無關(guān)文法產(chǎn)生舆逃。

3.2 下推自動機

3.2.1 下推自動機的形式定義

定義3.8 下推自動機是一個6元組(Q, \Sigma, \Gamma, \delta, q_0, F),這里Q, \Sigma, \Gamma和F都是有窮集合疟丙,并且

  1. Q是狀態(tài)集颖侄。

  2. \Sigma是輸入字母表。

  3. \Gamma是棧字母表享郊。

  4. \delta : Q \times \Sigma_{\epsilon} \times \Gamma_{\epsilon} \rightarrow \rho (Q \times \Gamma_{\epsilon})$是轉(zhuǎn)移函數(shù)览祖。

  5. q_0 \in Q是起始狀態(tài)。

  6. F \subseteq Q是接受狀態(tài)集炊琉。

下推自動機在能力上與上下文無關(guān)文法等價.

\{0^n1^n|n \geq0\}

非形式地描述這個語言的PDA如何工作:

讀輸入中的符號展蒂。每讀一個0把0輸入棧又活。一旦看見1之后,就每讀一個1就把一個0彈出棧锰悼。如果棧中0被排空的時候恰好讀完輸入串柳骄,則接受這個輸入。如果還有1沒有讀的時候棧變成空的箕般;或者棧中還有0的時候1已經(jīng)讀完了耐薯;或者0出現(xiàn)在1的后面,則拒絕這個輸入丝里。

3.2.2 下推自動機機舉例

\{0_n 1_n|n \geqslant\}

\{a^ib^jc^k|i,j,k \geqslant 0, 且i=j或i=k\}

\{\omega \omega^\Re |\omega \in \{0, 1\}^\star\}

3.2.3 與上下文無語言的等價性

定理3.12* 一個語言是上下文無關(guān)的曲初,當(dāng)且僅當(dāng)存在一臺下推自動機識別他。

正向:證明主要關(guān)注PDA的非確定性

反向:數(shù)學(xué)歸納法

3.3 非上下文無關(guān)語言

關(guān)于上下文無關(guān)語言的泵引理*

定理3.19 如果A是上下文無關(guān)語言,則存在數(shù)p(泵長度),使得A中任何一個長度不小于p的字符串s能夠分成5段宜咒,s=uvxyz,滿足下述條件

  1. 對于每一個i颁褂,uv^ixy^iz \in A

  2. |vy| > 0

  3. |vxy| \leqslant p

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市傀广,隨后出現(xiàn)的幾起案子颁独,更是在濱河造成了極大的恐慌,老刑警劉巖伪冰,帶你破解...
    沈念sama閱讀 218,204評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件奖唯,死亡現(xiàn)場離奇詭異,居然都是意外死亡糜值,警方通過查閱死者的電腦和手機丰捷,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,091評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來寂汇,“玉大人病往,你說我怎么就攤上這事〗景辏” “怎么了停巷?”我有些...
    開封第一講書人閱讀 164,548評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長榕栏。 經(jīng)常有香客問我畔勤,道長,這世上最難降的妖魔是什么扒磁? 我笑而不...
    開封第一講書人閱讀 58,657評論 1 293
  • 正文 為了忘掉前任庆揪,我火速辦了婚禮,結(jié)果婚禮上妨托,老公的妹妹穿的比我還像新娘缸榛。我一直安慰自己吝羞,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,689評論 6 392
  • 文/花漫 我一把揭開白布内颗。 她就那樣靜靜地躺著钧排,像睡著了一般。 火紅的嫁衣襯著肌膚如雪均澳。 梳的紋絲不亂的頭發(fā)上恨溜,一...
    開封第一講書人閱讀 51,554評論 1 305
  • 那天,我揣著相機與錄音找前,去河邊找鬼筒捺。 笑死,一個胖子當(dāng)著我的面吹牛纸厉,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播五嫂,決...
    沈念sama閱讀 40,302評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼颗品,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了沃缘?” 一聲冷哼從身側(cè)響起躯枢,我...
    開封第一講書人閱讀 39,216評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎槐臀,沒想到半個月后锄蹂,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,661評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡水慨,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,851評論 3 336
  • 正文 我和宋清朗相戀三年得糜,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片晰洒。...
    茶點故事閱讀 39,977評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡朝抖,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出谍珊,到底是詐尸還是另有隱情治宣,我是刑警寧澤,帶...
    沈念sama閱讀 35,697評論 5 347
  • 正文 年R本政府宣布砌滞,位于F島的核電站侮邀,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏贝润。R本人自食惡果不足惜绊茧,卻給世界環(huán)境...
    茶點故事閱讀 41,306評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望打掘。 院中可真熱鬧按傅,春花似錦捉超、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,898評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至况芒,卻和暖如春惜纸,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背绝骚。 一陣腳步聲響...
    開封第一講書人閱讀 33,019評論 1 270
  • 我被黑心中介騙來泰國打工耐版, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人压汪。 一個月前我還...
    沈念sama閱讀 48,138評論 3 370
  • 正文 我出身青樓粪牲,卻偏偏與公主長得像,于是被迫代替她去往敵國和親止剖。 傳聞我的和親對象是個殘疾皇子腺阳,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,927評論 2 355

推薦閱讀更多精彩內(nèi)容