軟考路上 編譯原理

2021-06-29 11:19:27 字數 1512 閱讀 9538

編譯原理在軟考中的考點大體上分為以下幾點:文法、語法推倒樹和算符優先

下面就從這三方面來總結一下。

基本元素

首先要了解文法中最基本的兩個元素:非終結符和終結符。

非終結符可以理解為還可以拆分的元素,一般用大寫字母來表示;終結符當然就可以看做是不可以拆分的元素,終結符不能轉換為其他狀態,也不能用其他的量來代替,一般用小寫字母來表示。

在圖中可以看到,乙個文法g是由vn,vt,p,s組成的四元組,其中:vn代表非終結符的集合;vt代表終結符的集合;p是乙個規則【α→β,α∈(vn∪vt)且α中至少含有乙個非終結符,β∈(vn∪vt),】;s是乙個符號【s∈vn】。

文法型別

0型文法(短語文法):乙個文法g=(vn,vt,p,s)中,如果它的每個產生式α→β都符合α∈(vn∪vt)且α中至少含有乙個非終結符,β∈(vn∪vt),那麼稱g是乙個0型文法,如果g0(,,p,s)的生成式為s→aa,aa→b,ab→abc,b→aba,那麼g0是乙個0型文法。

1型文法(上下文有關文法):1型文法在0型文法的基礎上多加了乙個條件,α的長度必須大於或等於β的長度,上例中g0因為有aa→b,所以g0(,,p,s)不符合1型文法。「→」左邊符號的數量必須小於等於右邊。

2型文法(上下文無關文法):2型文法在1型文法的基礎上多加了乙個條件,α必須是非終結符,上例g0中因為有ab→abc,ab不是非終結符,所以g0(,,p,s)不符合2型文法。「

→」左邊的符號必須是非終結符。

3型文法(正規文法),3型文法在2型文法的基礎上多加了乙個條件,β中如果包含終結符和非終結符時,非終結符要麼都在左側,要麼都在右側。比如a→ab,b→bc,那麼就不符合3型文法,但如果有a→ab,b→cb,那麼就符合3型文法。

從導圖中就可以看到,正規式其實就是文法的另一種表達形式,a→xb,b→y就可以推導為正規式a→xy。

可以直接用乙個文法和一張圖來理解:

對於文法g=(,,p,s),有s→aas|a,a→sba|ss|ba,把它拆分得到:s→aas,s→a,a→sba,a→ss,a→ba,它構造句型aabaa的推倒樹為:

當然,從乙個語法書得到句型,直接從左到右把葉子節點排列就行。

firstvt和lastvt

firstvt(a):對於非終結符a,每個推導式的右側有a→a…或a→ca…,則a屬於firstvt集;

lastvt(b):對於非終結符b,每個推導式的右側有b→…b或b→…bc,則b屬於lastvt集。

優先關係

三種優先關係的運算為:

≑關係:直接看產生式的右部,如果有a→…ab…或者a→…abb… ,則有a≑b;

⋖關係:當a→…ab…時,對每一b∈firstvt(b),都有a⋖b;

⋗關係:當a→…bb…時,對每一a∈firstvt(b),都有a⋖b。

軟考路上,你最棒!

軟考編譯原理總結

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

軟考 編譯原理之文法

一 定義 描述語言語法結構的規則 文法g是乙個四元組,可表示為g vn,vt,p,s ps vn 表示非終結符集合,一般使用大寫字母表示 vt 表示終結符集合,一般用小寫字母表示 p 表示產生式的集合 s 表示開始符號 二 推導 用產生式的右側替換產生式的左側,直到產生乙個終結符的序列為止。例子 文...

軟考 編譯與解釋

在軟考的過程中,有很多重要的知識點,也有很多相似的東西。在做真題的過程中,每套都有關於 編譯 和 解釋 的題型,總是傻傻分不清楚。今天我們就來聊一聊 編譯與 解釋 在計算機中,使用 高階語言開發的程式 是不能被直接執行的,必須經過一系列的處理之後 才能執行 根據這種處理方式的不同,可以分為解釋和編譯...