編譯原理 文法

2022-05-14 11:30:09 字數 1107 閱讀 7767

編譯原理這種課一聽就知道肯定特別晦澀難懂,上課沒聽懂,今天花了一天時間來學文法,看了一天也是是有些眉目,書上講的並不是特別清楚,倒是從各大部落格中汲取到不少知識。雖然感覺還只是停留在理論階段,但也要記錄一下吧,不然到時候理論都想不起來。

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

喬姆斯基(chomsky)根據對產生式的要求不同,將文法分為四類,即:0型文法、1型文法、2型文法和3型文法,這四類文法通常稱為 chomsky 體系。

文法 g

產生式結構

語言 l(g)

0型文法(短語結構文法)

∀α→β∈p,其中α、β∈(vt∪vn)* ,∣α∣≠0

0型語言(短語結構語言)

1型文法(上下文有關文法)

∀α→β∈p,其中α、β∈(vt∪vn)* ,∣α∣≤∣β∣

1型語言(上下文有關語言)

2型文法(上下文無關文法)

∀a→β∈p,其中a∈vn,β∈(vt∪vn)*

2型語言(上下文無關語言)

3型文法(正則文法)

∀a→α∣αb∈p(右線性)或∀a→α∣bα∈p(左線性),其中,a,b∈vn,α∈vt∪

3型語言(正則語言)

下面的例子中,a、b∈vn, a、b∈vt, 即大寫字母表示非終結符,小寫字母表示終結符。

0型文法

例:a→a, aa→aa, aa→a, aa→aa

左邊至少有乙個非終結符,不然的話也就不用推導了

1型文法

例:a→a, ab→abc, ab→bc

在0型文法的基礎上限制右邊長度不能短於左邊,所以 aa→a 不是1型文法。(α→ε除外)

2型文法

例:a→a, a→ab, b→a, b→ab

在1型文法的基礎上限制左邊不能有終結符,所以 ab→abc 不是2型文法。

3型文法

例:a→a, a→ab, b→a, b→cb

在2型文法的基礎上限制右邊只能有乙個終結符,而且左線性和右線性不能同時出現,所以 a→aa 或者 b→cb 和 b→bc 同時出現的都不是3型文法。

編譯原理文法

文法是用於描述語言的語法結構的形式規則。任何一種語言都有它自己的文法,不管它是機器語言還是自然語言。就像自然語言裡有主謂賓這樣的文法一樣,機器語言也有描述它語言構成的特定文法終結符和 非終結符 在電腦科學和語言學的領域是用來指定推導規則的元素。在某個 形式語法 之中,終結符和非終結符是兩個不交的集合...

編譯原理 文法分析

編譯原理實驗二 語法分析一 time limit 1000ms,special time limit 2500ms,memory limit 32768kb total submit users 115,accepted users 109 problem 10835 no special judg...

編譯原理 文法複習

文法是以有窮的集合刻畫無窮的集合的乙個工具。語言 是句子組成的集合,是由一組符號所構成的集合 語法 是每個句子構成的規則 語義 是每個句子的含義 閉包的概念 代表任意次推導,也叫克林閉包 代表至少一次推導,成為正閉包。文法定義為四元組 vn,vt,p,s vn 非終結符的集合 一般用大寫字母表示 v...