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

前言

在研究自然語言時,人們發(fā)現(xiàn)名詞、動詞辛蚊、介詞以及它們的短語之間存在著自然的遞歸關(guān)系,因此引入了 上下文無關(guān)文法(CFG) 來幫助整理和理解這種關(guān)系真仲。同時袋马,上下文無關(guān)文法在程序設(shè)計語言的規(guī)范化及編譯中有重要應用。設(shè)計人員在編寫程序設(shè)計語言的編譯器和解釋器時袒餐,通常需要先獲取該語言的文法飞蛹,因此在大多數(shù)的編譯器和解釋器中都包含了一個 語法分析器 上祈。與上下文無關(guān)文法相關(guān)的語言集合稱為 上下文無關(guān)語言(CFL)圃验。

上下文無關(guān)語法概述

給出一個上下文無關(guān)語法的示例予权,稱其為 G_1:
A \to 0A1 \\ A \to B \\ B \to \#

一個文法是由一組 替換規(guī)則 或稱 產(chǎn)生式 組成过咬;每條規(guī)則占一行坊谁,由一個符號和一個字符串構(gòu)成蒿讥,中間用箭頭隔開柄粹;符號稱為 變元墙懂,字符串則由變元和另一種稱為 終結(jié)符 的符號構(gòu)成匕积,通常第一條規(guī)則的左邊的變元被指定為 起始變元 盈罐;則文法 G_1 有3條規(guī)則,AB是變元闪唆,其中A是起始變元盅粪,0,1\# 是終結(jié)符;

按照以下方法悄蕾,能夠根據(jù)文法生成其所描述的語言的每一個字符串:

  1. 寫下起始變元
  2. 取一個已寫下的變元票顾,并找到該變元開始的規(guī)則,把這個變元替換成規(guī)則右邊的字符串
  3. 重復步驟2帆调,直到寫下的字符串中沒有變元為止

例如奠骄,文法 G_1 生成的字符串 000\#111。獲取一個字符串的替換序列稱為 派生番刊;文法 G_1 生成字符串 000\#111 的派生過程如下:

A \Rightarrow 0A1 \Rightarrow 000A111 \Rightarrow 000B111 \Rightarrow 000\#111

用上述方式生成的所有字符串構(gòu)成該 文法的語言含鳞;用 L(G_1)表示文法G_1的語言,可以得出 L(G_1) ={0^n\#1^n | n \geqslant 0}芹务,該語言稱為 上下文無關(guān)語言 蝉绷;通常對于A \to 0A1A \to B可以合并為 A \to 0A1 | B

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

G = (V,\Sigma,R,S)

  1. V: 有窮 變元
  2. \Sigma: 有窮 終結(jié)符
  3. R: 有窮 規(guī)則 集 (形如 A \to w,w \in (V \cup \Sigma)^*
  4. S \in V: 初始變元

設(shè) u,vw是由變元及終結(jié)符構(gòu)成的字符串鸭廷,A \to w是文法的一條規(guī)則,稱uAv 生成 uwv潜必,記作 uAv \Rightarrow uwv靴姿。如果 u = v沃但,或者存在序列 u_1,u_2...u_k磁滚,使得
u \Rightarrow u_1 \Rightarrow u_2 \Rightarrow ... \Rightarrow u_k \Rightarrow v
其中 k \geqslant 0,則稱u 派生 v宵晚,記作 u \overset{*}{\Rightarrow} v垂攘。該語言的文法是 {w \in \Sigma^* | S \overset{*}{\Rightarrow} w};

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末淤刃,一起剝皮案震驚了整個濱河市晒他,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌逸贾,老刑警劉巖陨仅,帶你破解...
    沈念sama閱讀 217,406評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異铝侵,居然都是意外死亡灼伤,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評論 3 393
  • 文/潘曉璐 我一進店門咪鲜,熙熙樓的掌柜王于貴愁眉苦臉地迎上來狐赡,“玉大人,你說我怎么就攤上這事疟丙∮敝叮” “怎么了?”我有些...
    開封第一講書人閱讀 163,711評論 0 353
  • 文/不壞的土叔 我叫張陵享郊,是天一觀的道長览祖。 經(jīng)常有香客問我,道長炊琉,這世上最難降的妖魔是什么展蒂? 我笑而不...
    開封第一講書人閱讀 58,380評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮温自,結(jié)果婚禮上玄货,老公的妹妹穿的比我還像新娘。我一直安慰自己悼泌,他們只是感情好松捉,可當我...
    茶點故事閱讀 67,432評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著馆里,像睡著了一般隘世。 火紅的嫁衣襯著肌膚如雪可柿。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,301評論 1 301
  • 那天丙者,我揣著相機與錄音复斥,去河邊找鬼。 笑死械媒,一個胖子當著我的面吹牛目锭,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播纷捞,決...
    沈念sama閱讀 40,145評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼痢虹,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了主儡?” 一聲冷哼從身側(cè)響起奖唯,我...
    開封第一講書人閱讀 39,008評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎糜值,沒想到半個月后丰捷,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,443評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡寂汇,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,649評論 3 334
  • 正文 我和宋清朗相戀三年病往,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片健无。...
    茶點故事閱讀 39,795評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡荣恐,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出累贤,到底是詐尸還是另有隱情叠穆,我是刑警寧澤,帶...
    沈念sama閱讀 35,501評論 5 345
  • 正文 年R本政府宣布臼膏,位于F島的核電站硼被,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏渗磅。R本人自食惡果不足惜嚷硫,卻給世界環(huán)境...
    茶點故事閱讀 41,119評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望始鱼。 院中可真熱鬧仔掸,春花似錦、人聲如沸医清。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,731評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽会烙。三九已至负懦,卻和暖如春筒捺,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背纸厉。 一陣腳步聲響...
    開封第一講書人閱讀 32,865評論 1 269
  • 我被黑心中介騙來泰國打工系吭, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人颗品。 一個月前我還...
    沈念sama閱讀 47,899評論 2 370
  • 正文 我出身青樓肯尺,卻偏偏與公主長得像,于是被迫代替她去往敵國和親抛猫。 傳聞我的和親對象是個殘疾皇子蟆盹,可洞房花燭夜當晚...
    茶點故事閱讀 44,724評論 2 354

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