有關編譯原理中的4種文法

2021-08-08 09:17:07 字數 1562 閱讀 7073

一.文法

chomsky於2023年建立形式語言體系,他把文法分成四種型別:0、1、2、3型。

與上下文無關文法一樣,它們都由四部分組成,但對產生式的限制有所不同。

文法g定義為四元組(vn ,vt ,p,s)

•vn :非終結符集,通常用大寫字母表示

•vt : 終結符集,通常用小寫字母表示

•p :產生式集合(規則集合)

•s :開始符號(識別符號)

看一下這4種類型文法的描述能力比較

二.0型(短語文法,圖靈機):

設g=(vn,vt,p,s),

產生式形如:α→β,

其中,α∈(vn∪vt)*且至少含有乙個非終結符

而β∈(vn∪vt)*,則g是乙個0型文法。

0型文法是這幾類文法中,限制最少的乙個,所以我們在試題中見到的,至少是0型文法

重要的理論結果:0型文法的能力相當於圖靈機。或者說,任何0型文法都是遞迴可列舉的;反之,遞迴可列舉集必定是乙個0型語言。

三.1型(上下文有關文法,線性界限自動機)

它是在0型文法的基礎上每乙個α→β,都有|β|>=|α|。這裡的|β|表示的是β的長度。僅 s→ε 例外。

這種文法意味著,對非終結符進行替換時務必考慮上下文,並且,一般不允許替換成空串ε 。

例如:如有a→ba則|β|=2,|α|=1符合1型文法要求。反之,如aa→a,則不符合1型文法。

例如:假若αaβ→ αγβ是1型文法g的乙個產生式,α和β都不空,則非終結符a只有在α和β 這樣乙個上下文環境中才可以把它替換成γ。

四.2型(上下文無關文法,非確定下推自動機)

2型文法是在1型文法的基礎上,再滿足:每乙個α→β都有α是乙個非終結符。

產生式形如: a →β(注:箭頭左邊的部分必須為且僅為乙個非終結符)。

例如:a→ba,符合2型文法要求。

例如:ab→bab雖然符合1型文法要求,但不符合2型文法要求,因為其α=ab,而ab不是乙個非終結符。a→bab就對啦。

五.3型(正規文法,有限自動機)

3型是在2型文法的基礎上滿足:

a→α|αb(右線性)或a→α|bα(左線性)。

注意:3型文法中只能滿足右線性,或只能滿足左線性,不能兩種同時都有

例如:a→a,a->ab,b→a,b→cb,則符合3型文法的要求。

但若為:a→ab,a→ab,b→a,b→cb或推導為:a→a,a→ba,b→a,b→cb則不符合3型方法的要求了。

編譯原理筆記4 文法與語言

1.字母表與符號串 2.連線 乘積 運算 串集間的乘積 串集的方冪 串集的自身乘積 例如 a b 則ab 1 a 0 2 字母表a的 n次方冪是字母表 a上所有長度為 n的串集。3.字母表的閉包與正閉包 1 字母表a 的閉包 a 2 字母表a 的正閉包 a 除了空串的所有次方冪和 4.文法 文法是描...

編譯原理學習筆記 2 6 有關文法的實用性限制

前言 參考東南大學廖力老師的編譯原理教程和課上ppt內容。該學習筆記目前僅打算個人使用。由於本菜雞第一次發csdn,許多格式不會用。後續會進一步整理,包括新增筆記內容,標明參考資料。更新中。跳過目錄 若文法中有如u u的規則,則這就是有害規則,它會引起二義性。例 存在u u,u a b,則句子a有兩...

編譯原理實驗4 LL(1)文法分析

本來是打算再寫乙個select集生成器的,但是時間有限再加上懶後來還是放棄了 這個 也是需要先新建乙個文字檔案sy4.in 文字檔案中第一行有乙個整數x,代表有x個產生式 接下來x行每行有三個字串,分別代表產生式左邊,右邊還有對應的select集 最後一行還有乙個字母s,代表起始字元 在讀入了資料之...