<tt id="a3jom"></tt>
    1. <tt id="a3jom"><noscript id="a3jom"></noscript></tt>

        <tt id="a3jom"></tt>

        編譯原理語法2推導與語法樹課件

        上傳人:無*** 文檔編號:178576861 上傳時間:2022-12-28 格式:PPT 頁數:26 大?。?39.50KB
        收藏 版權申訴 舉報 下載
        編譯原理語法2推導與語法樹課件_第1頁
        第1頁 / 共26頁
        編譯原理語法2推導與語法樹課件_第2頁
        第2頁 / 共26頁
        編譯原理語法2推導與語法樹課件_第3頁
        第3頁 / 共26頁
        資源描述:

        《編譯原理語法2推導與語法樹課件》由會員分享,可在線閱讀,更多相關《編譯原理語法2推導與語法樹課件(26頁珍藏版)》請在裝配圖網上搜索。

        1、第第 5 5 講講西北農林科技大學本科教程西北農林科技大學本科教程 主講教師:趙建邦主講教師:趙建邦 第三章第三章 語法分析語法分析l3.1 3.1 文法和語言文法和語言l3.2 3.2 推導與語法樹推導與語法樹l3.3 3.3 自頂向下的語法分析自頂向下的語法分析l3.4 3.4 自底向上的語法分析自底向上的語法分析l3.5 3.5 規范規約的自底向上語法分析方法規范規約的自底向上語法分析方法u第三章第三章語法分析語法分析l3.2 3.2 推導與語法樹推導與語法樹l推導與短語推導與短語l語法樹與二義性語法樹與二義性u重點掌握重點掌握l短語、句柄的概念短語、句柄的概念l二義性的消除二義性的消除

        2、本講目標本講目標 u3.2.1 推導與短語推導與短語1、規范推導、規范推導在在3.1.1節中,所給句子節中,所給句子i+i*i推導序列中的每一步推導都是對推導序列中的每一步推導都是對句型中的句型中的最右非終結符最右非終結符用相應產生式的右部進行替換,這樣用相應產生式的右部進行替換,這樣的推導稱為的推導稱為最右最右推導推導(規范推導),(規范推導),規范推導的逆過程稱為規范推導的逆過程稱為規范規約規范規約如果如果每一步推導都是對句型中的最左非終結符用相應產生式每一步推導都是對句型中的最左非終結符用相應產生式的右部進行替換,則稱為的右部進行替換,則稱為最左最左推導推導3.2 3.2 推導與語法樹推

        3、導與語法樹舉例:舉例:文法GE:EE+E|E*E|(E)|i (3.1)句子i+i*i的最左推導和最右推導?u3.2.1 推導與短語推導與短語2、短語、短語設設是文法是文法GS的一個句型,如果有:的一個句型,如果有:則稱則稱是句型是句型關于非終結符關于非終結符A的一個的一個短語短語,或稱,或稱是是的的一個一個短語短語。特別是有。特別是有A產生式時,產生式時,為句型為句型的一個的一個直接直接短語短語或或簡單簡單短語短語 短語短語的兩個條件缺一不可。僅有的兩個條件缺一不可。僅有A 未必意味著未必意味著就是句型就是句型的一個短語,還需要的一個短語,還需要有有 加以限制;即短語屬加以限制;即短語屬于句

        4、型的組成部分。于句型的組成部分。3.2 3.2 推導與語法樹推導與語法樹A且AS*AS*u3.2.1 推導與短語推導與短語3、句柄、句柄一個句型的最左直接短語稱為該句型的一個句型的最左直接短語稱為該句型的句柄句柄。注意,一個句。注意,一個句型的直接短語可能不只一個,但型的直接短語可能不只一個,但最左直接短語則是惟一的最左直接短語則是惟一的。3.2 3.2 推導與語法樹推導與語法樹舉例:舉例:文法GE:SAB A bB B Sb|a 句型“baSb”的短語和句柄?解答解答:(1)baSbbaBbBBABS SS*A且AS*baSbS句型本身是該句型關于開始符號的短語句型本身是該句型關于開始符號的

        5、短語最左推導u3.2.1 推導與短語推導與短語3.2 3.2 推導與語法樹推導與語法樹解答解答:(2)baSbbaBbBBABS baBS*A且AS*SbB句型baSb的子串Sb,是該句型相對于非終結符B的一個短語,而且是該句型的直接短語(3)baSbbBSbASbABS bBSbS*aB最右推導句型baSb的子串a,是該句型相對于非終結符B的一個短語,而且是該句型的直接短語、句柄最左推導u3.2.1 推導與短語推導與短語3.2 3.2 推導與語法樹推導與語法樹解答解答:(4)A且AS*baSbbBSbASbABS ASbS*baA最右推導句型baSb的子串ba,是該句型相對于非終結符A的一個

        6、短語注意:注意:短語、直接短語、句柄短語、直接短語、句柄都是針對某一都是針對某一句型句型來說的,來說的,都是指句型中的哪些符號串能夠構成短語、直接短語、句都是指句型中的哪些符號串能夠構成短語、直接短語、句柄。柄。脫離句型,談論三者是無意義的。脫離句型,談論三者是無意義的。例例5.2 文法文法G G E T|E+T T F|T*F F i|(E)i i1 1*i i2 2+i+i3 3 是文法是文法G G的一個句型嗎?的一個句型嗎?如果是,求出其句柄。如果是,求出其句柄。u3.2.1 推導與短語推導與短語4、素短語、素短語含有終結符的短語,如果它不存在也具有同樣性質的真子串含有終結符的短語,如果

        7、它不存在也具有同樣性質的真子串(不能包含有另一個素短語),則該短語為(不能包含有另一個素短語),則該短語為素素短語短語 (1)是短語是短語 (2)至少包含一個終結符至少包含一個終結符 (3)不再包含其它素短語不再包含其它素短語例如,在例如,在 中中,i i、E E*i i和和E+EE+E*i i是句型是句型E E+E E*i i的的三個短語;其中三個短語;其中i i為素短語;為素短語;E E*i i雖為短語且含有終結符,但雖為短語且含有終結符,但它的真子串它的真子串i i是素短語,故是素短語,故E E*i i不是素短語;同樣不是素短語;同樣E+EE+E*i i也不是也不是素短語。素短語。3.2

        8、 3.2 推導與語法樹推導與語法樹u3.2.1 推導與短語推導與短語4、素短語、素短語(練習練習)3.2 3.2 推導與語法樹推導與語法樹E+TE+TETF*FTi先找短語:先找短語:T、T*F、T+T*F、i、T+T*F+i 再找素短語:再找素短語:T*F、iE+EE*EEi先找短語:先找短語:i、E*i、E+E*i 再找素短語:再找素短語:iu3.2.2 語法樹與二義性語法樹與二義性對程序語言來說,有兩個問題需要解決:對程序語言來說,有兩個問題需要解決:(1)(1)判別程序在語法上是否正確;判別程序在語法上是否正確;(2)(2)句子的識別或分析。句子的識別或分析。在編譯方法中,為了便于識別

        9、或分析句子而引入了在編譯方法中,為了便于識別或分析句子而引入了語法樹語法樹這一重這一重要的輔助工具要的輔助工具語法樹語法樹以圖示化的形式把句子分解成各個組成部分來描述或以圖示化的形式把句子分解成各個組成部分來描述或分析分析句子的語法結構句子的語法結構,這種圖示化的表示與所定義的文法規則完全一,這種圖示化的表示與所定義的文法規則完全一致,但更為直觀和完整致,但更為直觀和完整3.2 3.2 推導與語法樹推導與語法樹u3.2.2 語法樹與二義性語法樹與二義性1、語法樹、語法樹(定義定義)對文法對文法GS=(VT,VN,S,),滿足下列條件的樹稱為,滿足下列條件的樹稱為GS的的語語法樹法樹:(1)每個

        10、結點用每個結點用GS的一個終結符或非終結符標記;的一個終結符或非終結符標記;(2)根結點用文法開始符根結點用文法開始符S標記標記;(3)內部結點內部結點(指非樹葉結點指非樹葉結點)一定是非終結符一定是非終結符,如果某內部結,如果某內部結點點A有有n個分支,它的所有子結點從左至右依次標記為個分支,它的所有子結點從左至右依次標記為x1、x2、xn,則,則Ax1x2xn一定是文法一定是文法GS的一條產生式的一條產生式;(4)如果某結點標記為如果某結點標記為,則它必為葉結點且是其父結點的惟,則它必為葉結點且是其父結點的惟一子結點。一子結點。3.2 3.2 推導與語法樹推導與語法樹圖圖3-4 句子句子i

        11、+i*i的語法樹的語法樹1、開始符S作為根結點3.2 3.2 推導與語法樹推導與語法樹2、父親節點是產生式左部,孩子節點對應產生式右部“EE+E”3、在一棵語法樹生長過程中的任何時刻,所有那些沒有后代的樹葉結點自左至右排列起來就是一個句型。4、一棵已經完成的語法樹無法判斷是來自于最左推導還是最右推導,而使用文法規則的推導過程是有先后之分的。如果堅持使用最左(或最右)推導,那么一棵語法樹就完全等價于一個最左(或最右)推導u3.2.2 3.2.2 語法樹與二義性語法樹與二義性2 2、子樹與短語、子樹與短語語法樹某個結點連同它的所有后代組成了一棵語法樹某個結點連同它的所有后代組成了一棵子樹子樹。只含

        12、有。只含有單層分枝的子樹稱為單層分枝的子樹稱為簡單子樹簡單子樹。子子樹與短語的關系十分密切,根據子樹的概念,句型的短語、樹與短語的關系十分密切,根據子樹的概念,句型的短語、直接短語、句柄和素短語的直觀解釋如下直接短語、句柄和素短語的直觀解釋如下:(1)1)短語:短語:子樹的末端結點子樹的末端結點(即樹葉即樹葉)組成組成的符號串是相對于子樹根的短語的符號串是相對于子樹根的短語;(2 2)直接直接短語短語:簡單子樹的:簡單子樹的末端結點末端結點 組成組成的符號串是相對于簡單子樹根的符號串是相對于簡單子樹根的的 直接直接短語短語3.2 3.2 推導與語法樹推導與語法樹SABbBaSbu3.2.2 3

        13、.2.2 語法樹與二義性語法樹與二義性2 2、子樹與短語、子樹與短語 (3)(3)句柄:句柄:最左簡單子樹的最左簡單子樹的末端末端 結點結點組成的符號串為句柄組成的符號串為句柄;(4)(4)素素短語短語:子樹的末端結點子樹的末端結點組組 成成的符號串含終結符,且的符號串含終結符,且在在 該該子樹中不再有包含終結符的更小子子樹中不再有包含終結符的更小子樹樹顯然顯然,從語法樹出發尋找短語、直接短語、句柄和素短語要,從語法樹出發尋找短語、直接短語、句柄和素短語要直觀得多直觀得多。注意。注意:子樹末端結點組成的符號串子樹末端結點組成的符號串是指由該子樹根開是指由該子樹根開始向下生長的始向下生長的所有所

        14、有末端結點末端結點(即樹葉即樹葉),該子樹的部分末端結點,該子樹的部分末端結點并不是該子樹的短語。并不是該子樹的短語。3.2 3.2 推導與語法樹推導與語法樹SABbBaSb圖3-5 E+E*i的語法樹3.2 3.2 推導與語法樹推導與語法樹圖3-6 E+E+E*i的語法樹直接短語、句柄、素短語不是短語直接短語u3.2.2 3.2.2 語法樹與二義性語法樹與二義性3 3、語法的二義性、語法的二義性對于文法任一句型的推導序列,總能為其構造一棵語法樹,對于文法任一句型的推導序列,總能為其構造一棵語法樹,那么文法的某個句型是否只對應一棵唯一的語法樹呢?那么文法的某個句型是否只對應一棵唯一的語法樹呢?

        15、也就也就是它是否只有唯一的一個最左(最右)推導呢?是它是否只有唯一的一個最左(最右)推導呢?對于文法對于文法(3.1),句子,句子i+i*i存在兩種最左(最右)推導,形成兩存在兩種最左(最右)推導,形成兩棵不同的語法樹棵不同的語法樹:3.2 3.2 推導與語法樹推導與語法樹最左推導最左推導1 1 i*iiE*iiE*EiEiEEE 最左推導最左推導2 2 i*iiE*iiE*EiE*EEE*EE 圖3-7 句子i+i*i的兩棵不同的語法樹3.2 3.2 推導與語法樹推導與語法樹u3.2.2 3.2.2 語法樹與二義性語法樹與二義性3 3、語法的二義性、語法的二義性u3.2.2 3.2.2 語法

        16、樹與二義性語法樹與二義性3 3、語法的二義性、語法的二義性再如,條件語句的文法再如,條件語句的文法GSGS為為 GSGS:S:Sif b Sif b S S Sif b S else Sif b S else S S Sa a定義:文法定義:文法GSGS的一個句子如果能找到的一個句子如果能找到兩種不同的最左推導兩種不同的最左推導(或最右推導或最右推導),或者或者存在兩棵不同的語法樹存在兩棵不同的語法樹,則稱這個句子,則稱這個句子是是二義性二義性的。一個文法如果包含二義性的句子,則這個文法的。一個文法如果包含二義性的句子,則這個文法是是二義文法二義文法,否則是無二義文法。,否則是無二義文法。3.

        17、2 3.2 推導與語法樹推導與語法樹句子句子 if b if b a else a if b if b a else a 的兩棵不同語法樹的兩棵不同語法樹,請畫出對應的兩棵語法樹請畫出對應的兩棵語法樹u3.2.2 3.2.2 語法樹與二義性語法樹與二義性4 4、文法二義性的消除、文法二義性的消除對于一個二義性文法對于一個二義性文法GS,如果能找到一個非二義性文法,如果能找到一個非二義性文法GS,使得,使得L(G)=L(G),則該二義性文法的二義性是,則該二義性文法的二義性是可以消可以消除的除的。如果找不到這樣的。如果找不到這樣的GS,則二義性文法描述的語言為,則二義性文法描述的語言為先天二義性

        18、先天二義性的的。文法二義性消除方法:文法二義性消除方法:(1)不改變文法中原有的語法規則,僅增加一些語法的非形式不改變文法中原有的語法規則,僅增加一些語法的非形式規定;規定;(2)構造一個等價的無二義性文法,把排除二義性的規則合并構造一個等價的無二義性文法,把排除二義性的規則合并到原有文法中,改寫原有的文法。到原有文法中,改寫原有的文法。(增加新的非終結符增加新的非終結符)3.2 3.2 推導與語法樹推導與語法樹u3.2.2 3.2.2 語法樹與二義性語法樹與二義性4、文法二義性的消除、文法二義性的消除例:將例:將文法文法(3.1)改寫為無二義性的文法改寫為無二義性的文法GE如下如下:GE:E

        19、E+T|T TT*F|F F(E)|i此時此時,句子,句子 i+i*i 就就只有只有如圖如圖3-9所示的惟一一棵語法所示的惟一一棵語法樹:樹:3.2 3.2 推導與語法樹推導與語法樹例例3.6 試將如下的二義性文法試將如下的二義性文法GS的二義性消除:的二義性消除:GS:Sif b S|if b S else S|a解答解答 消除GS的二義性可采用如下兩種方法:(1)不改變已有規則,僅加進一項非形式的語法規定:else與離它最近的if匹配(即最近匹配原則),這樣,文法GS的句子if b if b a else a只對應惟一的一棵語法樹(見圖3-10)。(2)改寫文法GS為GS:SS1|S2 S

        20、1if b S1 else S1|a S2if b S|if b S1 else S2 GS對應的語法樹見圖3-113.2 3.2 推導與語法樹推導與語法樹3.2 3.2 推導與語法樹推導與語法樹圖3-11 GS的復合if語句的語法樹aa圖3-10 復合if語句的語法樹u3.2.2 3.2.2 語法樹與二義性語法樹與二義性特別說明特別說明應該指出的是文法的二義性和語言二義性是應該指出的是文法的二義性和語言二義性是兩個不同的概念兩個不同的概念 通常直說文法的二義性,而不說語言的二義性,這是因為可通常直說文法的二義性,而不說語言的二義性,這是因為可能有兩個不同的文法能有兩個不同的文法G和和G,其中一個是二義性的,另一個是其中一個是二義性的,另一個是無二義性的,但卻有無二義性的,但卻有L(G)=L(G),即這兩個文法所產生的語,即這兩個文法所產生的語言是相同的;言是相同的;講一個語言稱為二義性的,是指對它不存在無二義性的文法,講一個語言稱為二義性的,是指對它不存在無二義性的文法,這樣的語言稱為先天二義性的語言。這樣的語言稱為先天二義性的語言。3.2 3.2 推導與語法樹推導與語法樹課后習題:課后習題:3.2 3.33.2 3.2 推導與語法樹推導與語法樹

        展開閱讀全文
        溫馨提示:
        1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
        2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
        3.本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
        4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
        5. 裝配圖網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
        6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
        7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
        關于我們 - 網站聲明 - 網站地圖 - 資源地圖 - 友情鏈接 - 網站客服 - 聯系我們

        網站客服QQ:2846424093或766697812

        copyright@ 2020-2023  zhuangpeitu.com 裝配圖網版權所有   聯系電話:0512-65154990  

        備案號:蘇ICP備12009002號-6   經營許可證:蘇B2-20200052  蘇公網安備:32050602011098


        本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對上載內容本身不做任何修改或編輯。若文檔所含內容侵犯了您的版權或隱私,請立即通知裝配圖網,我們立即給予刪除!

        特级毛片a片全部免费播,特级毛片a片全部免费观看,特级毛片免费无码不卡观看,特级全黄a片高清视频

        <tt id="a3jom"></tt>
        1. <tt id="a3jom"><noscript id="a3jom"></noscript></tt>

            <tt id="a3jom"></tt>