軟考 編譯原理之文法

2021-08-28 18:20:36 字數 1269 閱讀 5817

一、定義

描述語言語法結構的規則

文法g是乙個四元組,可表示為g=(vn,vt,p,s)

ps:

vn:表示非終結符集合,一般使用大寫字母表示

vt:表示終結符集合,一般用小寫字母表示

p:表示產生式的集合

s:表示開始符號

二、推導

用產生式的右側替換產生式的左側,直到產生乙個終結符的序列為止。

例子:文法g[s]:s->0s1

s->01

s=>0s1=>00s11=>000111

在推導的時候有直接推導,這時候會遇見兩種符號「+」「*」這兩個分表表示什麼呢?

+:表示至少一次

*:表示任意次

推導分為兩類:最左推導和最右推導,其中最右推導為規範推導

例子:文法g[s]:s->asba

a->aa|a

s->a

如皋要得到最後的推導的結果是aabaa,使用最右推導是怎樣的呢?

s=>asba=>asbaa=>asbaa=>asbaa=>aabaa (在=>上面寫r就可以了)

其實就是要在文法最右側開始進行推導,此題中也就是asba的最右側開始,最左推導就是與其相反,在asba的最左側開始

三、歸約

用產生式的左側替換產生式的右側

例子:文法g[s]:s->0s1

s->01

000111=>00s11=>0s1=>s

歸約分為兩種歸約:最左歸約和最右歸約,其中最左歸約為規範歸約

歸約就是推導的反面。

四、分類

類 型別 名

代 表描 述

0型文法

短語文法

圖靈機文法的每乙個產生式α->β,均有α∈(vn∪vt)^+,α至少含有乙個非終結符,且β∈(vn∪vt)^*

1型文法

上下文有關文法

線性界限自動機

在0型的基礎上,文法的每乙個產生式任意α->β,且|α|<=|β|

2型文法

上下文無關文法

下推自動機

在1型的基礎上,文法的每乙個產生式α->β,且α屬於非終結符

3型文法

正規文法

有限自動機

在2型的基礎上,文法的每乙個產生式任意α->β,且有類似於a->ab或者a->a(其中a,b為非終結符,a為終結符)

軟考之文法

要軟考了,文法是乙個考點,有的同學感覺這部分不太好理解,之所以不太好理解,很大的原因是教程裡的敘述 雲裡霧裡,可能是為了表明自己身為 教程 具有不可動搖的地位,所以狐假虎威了一次吧 明天周四活動技術分享,本person自告奮勇地要講關於這方面的東西,所以私下裡做了乙個ppt,感覺ppt不是很差,所以...

軟考路上 編譯原理

編譯原理在軟考中的考點大體上分為以下幾點 文法 語法推倒樹和算符優先 下面就從這三方面來總結一下。基本元素 首先要了解文法中最基本的兩個元素 非終結符和終結符。非終結符可以理解為還可以拆分的元素,一般用大寫字母來表示 終結符當然就可以看做是不可以拆分的元素,終結符不能轉換為其他狀態,也不能用其他的量...

軟考編譯原理總結

軟考中要考的主要的是文法 正規式 有窮自動機 語法推導樹和算符優先。有0型文法 1型文法 2型文法 3型文法。0型文法是限制最少的乙個。有 vn 非終結符集合。vt 終結符集合。p 推導式集合 s 開始符。只要推導式的左側至少含義 1個非終結符就可。1型文法又叫上下文有關文法,他要求在 0型文法的基...