編譯原理01 文法

2021-10-05 23:14:45 字數 3262 閱讀 1603

文法編譯就是高階語言翻譯成低階語言的過程,翻譯完全部**後執行。

解釋也是翻譯的過程,但和編譯不同,解釋時逐句翻譯,一邊解釋一邊執行。

程式語言是乙個記號系統。可以看作是一定字符集(字母表)上的字串,包括語法和語義兩部分。

文法是描述語言的語法結構的形式規則。

young men like pop music. 包含這個句子的語言的文法為:

<句子

>

→<主語

>

<謂語

>

《句子》\rightarrow《主語》《謂語》

《句子>

→《主語

>

《謂語>

<主語

>

→<形容

詞>

<名詞

>

《主語》\rightarrow《形容詞》《名詞》

《主語>

→《形容

詞》《名詞

>

<謂語

>

→<動詞

>

<賓語

>

《謂語》\rightarrow《動詞》《賓語》

《謂語>

→《動詞

>

《賓語>

<賓語

>

→<形容

詞>

<名詞

>

《賓語》\rightarrow《形容詞》《名詞》

《賓語>

→《形容

詞》《名詞

>

<形容

詞>→y

oung

∣pop

《形容詞》\rightarrow young | pop

《形容詞》→y

oung

∣pop

<名詞

>→m

en∣m

usic

《名詞》\rightarrow men|music

《名詞>→m

en∣m

usic

<動詞

>→l

ik

e《動詞》\rightarrow like

《動詞>→l

ike

最左推導:

<句子

>

→<主語

>

<謂語

>

《句子》\rightarrow《主語》《謂語》

《句子>

→《主語

>

《謂語>

<句子

>

→<形容

詞>

<名詞

>

<謂語

>

《句子》\rightarrow 《形容詞》《名詞》《謂語》

《句子>

→《形容

詞》《名詞

>

《謂語>

<句子

>→y

oung

<名詞

>

<謂語

>

《句子》\rightarrow young《名詞》《謂語》

《句子>→y

oung

《名詞>

《謂語>

<句子

>→y

oung

ma

n<謂語

>

《句子》\rightarrow young \ man 《謂語》

《句子>→y

oung

man《謂語

>

<句子

>→y

oung

ma

n<動詞

>

<賓語

>

《句子》\rightarrow young \ man《動詞》《賓語》

《句子>→y

oung

man《動詞

>

《賓語>

<句子

>→y

oung

manl

ik

e<賓語

>

《句子》\rightarrow young \ man \ like 《賓語》

《句子>→y

oung

manl

ike《賓語

>

<句子

>→y

oung

manl

ik

e<形容

詞>

<名詞

>

《句子》\rightarrow young man like 《形容詞》《名詞》

《句子>→y

oung

manl

ike《形容

詞》《名詞

>

<句子

>→y

oung

manl

ikep

op

<名詞

>

《句子》\rightarrow young \ man \ like \ pop \ 《名詞》

《句子>→y

oung

manl

ikep

op《名詞

>

<句子

>→y

oung

manl

ikep

opmu

si

c《句子》\rightarrow young \ man \ like \ pop \ music

《句子>→y

oung

manl

ikep

opmu

sic從形式上說文法是乙個四元式(vn , vt , p , s)

1型文法(長度增加文法或上下文有關文法)

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

3型文法(正規文法rg)

由i型文法生成的語言稱為i型語言,記為:l(g

)=

l(g)=\

l(g)=。

構造無ε

\varepsilon

ε產生式的上下文無關文法的變換演算法

控制代碼:句型中的最左簡單短語(最左規約:找句型中的最左簡單短語包含的字串用此短語的子樹根進行替換)。

文法的二義性

句子二義性:如果文法的乙個句子存在對應的兩棵或兩棵以上的語法樹,則該句子是二義的。

文法二義性:包含二義性句子的文法是二義文法。

編譯原理(2) 文法推導

這一篇講一講形式文法的推導,學習是乙個持之以恆的過程,尤其是像我這種初學者了。注 這一篇的例子來自於統計自然語言處理這本書 形式文法的推導比較好理解,即按文法g中的規則p推導 的符號串,且b c是p中的乙個產生式,那麼,abc adc。1 的傳遞閉包,即 n 上的符號串xi到xi 1至少經過一步推導...

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

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

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

目標任務 實現 ll 1 分析中控制程式 表驅動程式 完成以下描述算術表示式的 ll 1 文法的 ll 1 分析程式。g e e te e ate t ft t mft f e i a m 說明 終結符號 i 為使用者定義的簡單變數,即識別符號的定義。compiler3.cpp 定義控制台應用程式的...