編譯原理-文法定義

一. 文法公式

文法定義公式如下:

G = (VT , VN , P , S)
  1. VT : 終結(jié)符集合

終結(jié)符就是不可以再推導(dǎo)的字符。
也就是說對(duì)于一個(gè)字符 a ,它屬于終結(jié)符集合 VT(a∈VT) , a 不可以再推導(dǎo)的字符欺殿,即不能用其他字符表示 a苍糠。表現(xiàn)形式就是 a 不能單獨(dú)出現(xiàn)在產(chǎn)生式左邊钠龙。

  1. VN : 非終結(jié)符集合

非終結(jié)符即可以繼續(xù)推導(dǎo)的字符威创。

  1. P : 產(chǎn)生式集合

產(chǎn)生式就是推導(dǎo)公式榕订,表示這個(gè)文法的定義規(guī)則。
產(chǎn)生式形式 α→β ,其中 αβ 都是屬于文法符合串 (VN∪VT)* 姨伤。α 稱為產(chǎn)生式的左部或者頭部哨坪;β 稱為產(chǎn)生式的右部或者體。
文法符合串乍楚,即終結(jié)符集合和非終結(jié)符集合任一排列組合成的字符串当编。例如 aAbbB , 其中 (a,b∈VT , A,B∈VN) 就是一個(gè)文法符合串。

  1. S : 開始符號(hào)

即文法從這個(gè)符號(hào) S 利用產(chǎn)生集合 P 開始推導(dǎo)徒溪。S 是一個(gè)非終結(jié)符忿偷,即 S∈VN。
一般情況下臊泌,第一個(gè)產(chǎn)生式左部符號(hào)就是開始符號(hào)鲤桥。

二. 文法分類

Chomsky 文法分類將文法分為四種,0型文法(PSG)缺虐、1型文法(CSG)芜壁、2型文法(CFG)和3型文法(RG)。

其實(shí)不同的文法就是對(duì)產(chǎn)生式進(jìn)行逐層限制形成的高氮。

2.1 0型文法(PSG)

又被稱為無限制文法(Unrestricted Grammar), 或者短語結(jié)構(gòu)文法(Phrase Structure Grammar)
定義: 對(duì)于產(chǎn)生式 α→βα 至少包含一個(gè)非終結(jié)符顷牌。

即 α,β∈(VN∪VT)* , αβ 都是文法符合串剪芍,并且 α 文法符合串中必須包含一個(gè)非終結(jié)符。
例如: aA→0bB; A0→11bB; 其中 (a,0,b∈VT),(A,B∈VN)窟蓝。

為什么要叫無限制文法罪裹,明明它要求產(chǎn)生式的左部必須包含一個(gè)非終結(jié)符。

因?yàn)槲覀冎澜K結(jié)符是不能再推導(dǎo)出其他字符的运挫,所以產(chǎn)生式的左部不能全是終結(jié)符組成的文法符合串(VT*)状共,這個(gè)是不允許的,所以產(chǎn)生式的左部必須包含一個(gè)非終結(jié)符谁帕。

2.2 1型文法(CSG)

又被稱為上下文有關(guān)文法(Context-Sensitive Grammar)
定義:對(duì)于產(chǎn)生式 α→β , |α| <= |β|, 僅僅 S→ε 除外

|α| 表示 α 這個(gè)文法符合串中字符個(gè)數(shù)峡继。例如 aAb 這個(gè)字符個(gè)數(shù)就是3個(gè)。

也就是說1型文法要求產(chǎn)生式右部文法符合串β 的字符個(gè)數(shù)要不小于產(chǎn)生式左部文法符合串α 的字符個(gè)數(shù)匈挖;但是空產(chǎn)生式(S→ε) 除外碾牌。

ε 表示空串,即文法符號(hào)串中沒有任何字符元素(|ε|=0)

為什么叫做上下文有關(guān)文法儡循?

因?yàn)閷?duì)于任何一個(gè)非終結(jié)符 A (即 A∈VN)舶吗,想要將它替換成其他文法符號(hào)串,必須要有對(duì)應(yīng)形式的產(chǎn)生式择膝。

一般情況下誓琼,這種產(chǎn)生式的形式為 α1Aα2→α1βα2

其中 α1,α2,β∈(VN∪VT)*, β≠ε,A∈VN。
所以對(duì)于非終結(jié)符 A, 出現(xiàn)在 α1α2 上下文中腹侣,就可以替換成文法符號(hào)串β 呵扛。

例如: 對(duì)于這個(gè)產(chǎn)生式 1A2→112342 ,可以將非終結(jié)符 A 替換成文法符號(hào)串 1234筐带。

2.3 2型文法(CFG)

又被稱為上下文無關(guān)文法(Context-Free Grammar)
定義:對(duì)任一產(chǎn)生式 α→β今穿,都有 α∈VN,β∈(VN∪VT)*

對(duì)產(chǎn)生式左部進(jìn)行了限制伦籍,α 就是非終結(jié)符集合 VN 中一個(gè)字符元素蓝晒。
當(dāng)然一個(gè)非終結(jié)符也是一個(gè)特殊的文法符號(hào)串,串中只有一個(gè)字符帖鸦,且是一個(gè)非終結(jié)符芝薇。
β∈(VN∪VT)*, β 表示一個(gè)文法符號(hào)串,其中空串 ε 也是一個(gè)特殊文法符號(hào)串作儿。
所以對(duì)于2型文法也有空產(chǎn)生式 (S→ε)

為什么叫上下文無關(guān)文法洛二?

因?yàn)閷?duì)于任何一個(gè)非終結(jié)符 A (即 A∈VN),可以直接根據(jù)產(chǎn)生式替換成一個(gè)文法符號(hào)串攻锰,而不需要特殊的上下文環(huán)境晾嘶。

2.4 3型文法(RG)

又被稱為正則文法(Regular Grammar,RG)娶吞,分為右線性(Right Linear)文法和左線性(Left Linear)文法垒迂。

定義: 對(duì)任一產(chǎn)生式 α→β,都有 α∈VN妒蛇,β最多兩個(gè)字符元素机断,如果有二個(gè)字符必須是(終結(jié)符+非終結(jié)符)的格式,如果是一個(gè)字符绣夺,那么必須是終結(jié)符吏奸。

產(chǎn)生的左部只能是一個(gè)非終結(jié)符元素。
產(chǎn)生的右部最多兩個(gè)字符元素 (即 bB,Bb 其中 b∈VT, B∈VN)陶耍,或者只有一個(gè)元素,且必須是終結(jié)符(即b, b∈VT)奋蔚。

根據(jù)產(chǎn)生式右部非終結(jié)符位置不同,分為右線性文法和左線性文法物臂。

  1. 右線性文法: A→bB 或者 A→b
  2. 左線性文法: A→Bb 或者 A→b

注: 正則文法產(chǎn)生式集合中每個(gè)產(chǎn)生式有相同的線性旺拉,即所有產(chǎn)生式要么都是右線性文法,要么都是左線性文法棵磷。

2.5 小結(jié)

可以看出蛾狗,不同文法就是對(duì)產(chǎn)生式進(jìn)行逐層的限制,所以各個(gè)文法是包含關(guān)系仪媒,即0型文法包含1型文法沉桌;1型文法又包含2型文法谢鹊;2型文法最后包含3型文法。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末留凭,一起剝皮案震驚了整個(gè)濱河市佃扼,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌蔼夜,老刑警劉巖兼耀,帶你破解...
    沈念sama閱讀 218,386評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異求冷,居然都是意外死亡瘤运,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,142評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門匠题,熙熙樓的掌柜王于貴愁眉苦臉地迎上來拯坟,“玉大人,你說我怎么就攤上這事韭山∮艏荆” “怎么了?”我有些...
    開封第一講書人閱讀 164,704評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵钱磅,是天一觀的道長(zhǎng)梦裂。 經(jīng)常有香客問我,道長(zhǎng)续搀,這世上最難降的妖魔是什么塞琼? 我笑而不...
    開封第一講書人閱讀 58,702評(píng)論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮禁舷,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘毅往。我一直安慰自己牵咙,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,716評(píng)論 6 392
  • 文/花漫 我一把揭開白布攀唯。 她就那樣靜靜地躺著洁桌,像睡著了一般。 火紅的嫁衣襯著肌膚如雪侯嘀。 梳的紋絲不亂的頭發(fā)上另凌,一...
    開封第一講書人閱讀 51,573評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音戒幔,去河邊找鬼吠谢。 笑死,一個(gè)胖子當(dāng)著我的面吹牛诗茎,可吹牛的內(nèi)容都是我干的工坊。 我是一名探鬼主播,決...
    沈念sama閱讀 40,314評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼王污!你這毒婦竟也來了罢吃?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,230評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤昭齐,失蹤者是張志新(化名)和其女友劉穎尿招,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體阱驾,經(jīng)...
    沈念sama閱讀 45,680評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡就谜,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,873評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了啊易。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片吁伺。...
    茶點(diǎn)故事閱讀 39,991評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖租谈,靈堂內(nèi)的尸體忽然破棺而出篮奄,到底是詐尸還是另有隱情,我是刑警寧澤割去,帶...
    沈念sama閱讀 35,706評(píng)論 5 346
  • 正文 年R本政府宣布窟却,位于F島的核電站,受9級(jí)特大地震影響呻逆,放射性物質(zhì)發(fā)生泄漏夸赫。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,329評(píng)論 3 330
  • 文/蒙蒙 一咖城、第九天 我趴在偏房一處隱蔽的房頂上張望茬腿。 院中可真熱鬧,春花似錦宜雀、人聲如沸切平。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,910評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽悴品。三九已至,卻和暖如春简烘,著一層夾襖步出監(jiān)牢的瞬間苔严,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,038評(píng)論 1 270
  • 我被黑心中介騙來泰國(guó)打工孤澎, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留届氢,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,158評(píng)論 3 370
  • 正文 我出身青樓亥至,卻偏偏與公主長(zhǎng)得像悼沈,于是被迫代替她去往敵國(guó)和親贱迟。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,941評(píng)論 2 355

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

  • 1. 基本概念 (1). 字母表 ? 字母表:字母表Σ是符號(hào)元素的非空集合. ? 符號(hào):字...
    Benjamin_Lee閱讀 1,103評(píng)論 0 0
  • 基本概念 一. 字母表 (Alphabet) 字母表∑ 是一個(gè)有窮符號(hào)集合符號(hào):字母絮供、數(shù)字 衣吠、 標(biāo)點(diǎn)符號(hào)、… 例...
    衣忌破閱讀 1,173評(píng)論 0 2
  • 第二章 文法和語言 2.1文法 文法是定義或描述語法結(jié)構(gòu)的一組形式規(guī)則壤靶。 (1)文法的形式化定義: G[S]=(V...
    bb673c4e6af7閱讀 1,363評(píng)論 0 0
  • 第一章 編譯引論1缚俏、編譯程序:將某一種程序設(shè)計(jì)語言寫的程序翻譯成等價(jià)的另一種語言的程序的程序2、源語言:用來編寫源...
    曹元_閱讀 986評(píng)論 0 2
  • 本文鏈接:https://blog.csdn.net/Helloyongwei/article/details/7...
    __笙歌4J閱讀 6,394評(píng)論 1 2