日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

编译原理:文法及其二义性(判定及消除)

發(fā)布時間:2025/3/8 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 编译原理:文法及其二义性(判定及消除) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

(請先看置頂博文)https://blog.csdn.net/GenuineMonster/article/details/104495419

學(xué)編譯原理時,會學(xué)到文法,老師在介紹完文法的相關(guān)定義后又介紹了文法的二義性,但是沒說到底是如何避免文法的二義性的。

這篇博文就是我的學(xué)習(xí)結(jié)果

文法的二義性:如果文法G中的某個句子存在不只一棵語法樹,則稱該句子是二義性的。如果文法含有二義性的句子,則稱該文法是二義性的。

我舉個例子,來說明文法的二義性及其避免方法:

有下面這個文法:

S - >S and S | S or S | not S | p | q | (S)

那么要是得到 not p and q:

其推導(dǎo)過程如下:都用最左推導(dǎo)

A、S -> not S

? ? ? ? ?-> not S and S

? ? ? ? ?-> not p and S

? ? ? ? ?-> not p and q

B、S -> S and S

? ? ? ? ?-> not S and S

? ? ? ? ?-> not p and S

? ? ? ? ?-> not p and q

顯然這兩個推導(dǎo)過程不同,說明與兩個過程相對應(yīng)的語法樹也不同,所以,此文法具有二義性

那么怎么修改呢?

這就到了消除二義性的方法了:

1、人為規(guī)定其中的“not”,“and”,“or”的優(yōu)先級

依照此法,可將上述文法修改為:

S -> S or T | T

T -> T and F | F

F -> not F | (E) | p | q

2、第二種方法就是重寫文法

文中的文法例子來源于:https://blog.csdn.net/chunjiekid/article/details/82319161,這個博客是我在尋找方法的時候?qū)W習(xí)的,但是他寫的沒我的詳細(xì),哈哈!

總結(jié)

以上是生活随笔為你收集整理的编译原理:文法及其二义性(判定及消除)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。