廣工編譯原理復(fù)習(xí)_第1頁
廣工編譯原理復(fù)習(xí)_第2頁
廣工編譯原理復(fù)習(xí)_第3頁
廣工編譯原理復(fù)習(xí)_第4頁
廣工編譯原理復(fù)習(xí)_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、編譯原理復(fù)習(xí) Always麥第一章 引論l 什么是編譯程序:翻譯程序:將一種語言(源語言)翻譯成另一種邏輯上等價(jià)的語言(目標(biāo)語言)的程序。編譯程序:源語言為高級語言,目標(biāo)語言是低級語言(匯編或機(jī)器語言)的翻譯程序。l 與解釋語言的區(qū)別:編譯程序(器)解釋程序(器)概念:翻譯整個(gè)源程序,產(chǎn)生一份目標(biāo)代碼概念:邊翻譯邊執(zhí)行,不產(chǎn)生目標(biāo)代碼優(yōu):執(zhí)行效率較高,空間開銷較小劣:執(zhí)行效率較低,空間開銷大劣:交互性差,較復(fù)雜優(yōu):交互性好,較簡單l 圖1.2 高級語言程序的處理過程 P1需預(yù)處理的源程序預(yù)處理的程序源程序編譯程序目標(biāo)匯編程序匯編程序可再裝配的機(jī)器代碼裝配/連接 -編譯程序絕對機(jī)器代碼可再裝配目

2、標(biāo)文件圈起來部分可以省略l 圖1.10 編譯程序結(jié)構(gòu)框圖 P6l 前端、后端的概念:前端:與源語言有關(guān),而與目標(biāo)機(jī)無關(guān)的編譯程序后端:與目標(biāo)機(jī)有關(guān),而與源語言無關(guān)的編譯程序l 遍、趟的概念:是對源程序或源程序的中間結(jié)果從頭到尾掃描并完成規(guī)定任務(wù)的過程第二章 PL/0 編譯程序的實(shí)現(xiàn)l P18 三個(gè)變量通過三個(gè)全程量 SYM 、ID和NUM 將識別出的單詞信息傳遞給語法分析程序。SYM:存放單詞的類別,用內(nèi)部編碼形式表示。ID:存放用戶所定義的標(biāo)識符的值。即標(biāo)識符字符串的機(jī)內(nèi)表示。NUM:存放用戶定義的數(shù)。l P22 符號表 【畫】TX: table表的下標(biāo)指針,是以值參數(shù)形式使用的。DX:計(jì)算

3、每個(gè)變量在運(yùn)行棧中相對本過程基地址的偏移量,每次都會初始化為3l P29 運(yùn)行棧 【畫】RA返回地址:記錄調(diào)用該過程時(shí)目標(biāo)程序的斷點(diǎn),即調(diào)用過程指令的下一條指令的地址DL動態(tài)鏈:指向調(diào)用該過程前正在運(yùn)行過程的數(shù)據(jù)段基地址。SL靜態(tài)鏈:指向定義該過程的直接外過程(或主程序)運(yùn)行時(shí)最新數(shù)據(jù)段的基地址l P28 I P T 寄存器I: 指令寄存器。存放當(dāng)前正在解釋的一條目標(biāo)指令P: 程序地址寄存器。指向下一條要執(zhí)行的目標(biāo)程序的地址T: 棧頂寄存器。指向當(dāng)前棧中最新分配的單元B: 總是指向當(dāng)前執(zhí)行過程活動記錄的起始地址l CX 、 CODECX為目標(biāo)代碼CODE數(shù)組的下標(biāo)指針l第三章 文法和語言3.1

4、 文法的直觀概念ü 語法:每個(gè)程序的構(gòu)成規(guī)律。判斷“句子”是否為語言的合法程序的規(guī)則。包括:詞法規(guī)則à字符組成的單詞; 語法規(guī)則à單詞組成語法單元ü 語義:每個(gè)程序的含義。賦予程序意義的規(guī)則ü 語用:每個(gè)程序和使用者之間的關(guān)系3.2 符號和符號串 àà基本不考3.3 文法和語言的形式定義l 文法的定義: 文法是描述語法的形式化工具文法G是一個(gè)四元組( VN, VT, P, S )VN為非終結(jié)符的有窮集合 VNVT = VT為終結(jié)符的有窮集合 P為產(chǎn)生式(或規(guī)則式)有窮集合 形如 xyS為文法的開始符號 SVN ,至少要在一條

5、產(chǎn)生式的左部出現(xiàn)l 推導(dǎo):【按要求推導(dǎo)】 AAy 直接推導(dǎo) A => Ay 間接推導(dǎo) 直接推導(dǎo):每條產(chǎn)生式只能用一次最左推導(dǎo):對于直接推導(dǎo)v=xAy=>xuy=w,若xVT*,即A是v中最左非終結(jié)符,則稱此直接推導(dǎo)為最左直接推導(dǎo),記作v=>w。若推導(dǎo)v=>w中的每個(gè)直接推導(dǎo)都是最左的,則稱為最左推導(dǎo)最右推導(dǎo)(規(guī)范推導(dǎo)):每次都擴(kuò)展最右的非終結(jié)符最右推導(dǎo)的逆過程是 最左歸約最左推導(dǎo)的逆過程是 最右歸約l 句型:從識別符號推導(dǎo)出來的符號串l 句子:僅含有終結(jié)符的句型l 語言L(G):文法描述的語言是該文法一切句子的集合l 等價(jià):若L(G1) = L(G2),則稱G1和G2等

6、價(jià),記作G1G2l 遞歸:遞歸規(guī)則是指在規(guī)則的左部和右部具有相同的非終結(jié)符的規(guī)則。形如AAy 的規(guī)則稱為左遞歸規(guī)則;形如AxA 的規(guī)則稱為右遞歸規(guī)則;形如AxAy且x,y<>的規(guī)則稱為內(nèi)遞歸規(guī)則,或自嵌入規(guī)則3.4 文法的類型 【構(gòu)造文法】l 0型/短語結(jié)構(gòu)文法: 最一般的文法,無限制l 1型/上下文有關(guān):uw的限制:除了u,|u|w| ,意為串的長度不可壓縮aAb aQb 只有A出現(xiàn)在 ab 的上下文中,才允許用 Q代替Al 2型/上下文無關(guān): uVN,wV* u w = 用w取代非終結(jié)符u時(shí),與上下文無關(guān)l 3型/正規(guī)文法不同時(shí)出現(xiàn)右線性文法:形式都是AaB和Aa,A,BVN

7、aVT左線性文法:形式都是ABa和Aa,A,BVN aVT3.5 上下文無關(guān)文法及其語法樹l 語法樹 【畫】 推導(dǎo)樹 4個(gè)條件 P40 。簡單不多說葉子結(jié)點(diǎn)從左至右組成的符號串對應(yīng)文法中的一個(gè)句型ü 葉子結(jié)點(diǎn):沒有孩子的結(jié)點(diǎn)ü 分支:非葉子結(jié)點(diǎn)連同其全部孩子(直接孩子)。ü 子樹:非葉子結(jié)點(diǎn)連同其全部后裔(直接孩子和間接孩子)。 ü 簡單子樹:如果子樹只有2層。ü 短語:每個(gè)子樹的葉子串是相對于該子樹的根的短語 :i1 i2 i3 i1*i2 i1*i2+i3ü 簡單短語(直接短語):每個(gè)簡單子樹的葉子串是簡單短語 :i1 i2 i3

8、ü 句柄:最左的簡單子樹的葉子串是句柄 : i1l 二義性文法 【判斷】 定義:存在某個(gè)句子對應(yīng)著兩棵不同的語法樹的文法。注意:二義性是指文法,不是指語言。ü 轉(zhuǎn)換為無二義的:文法GE變換為文法GE GE: EE+E|E*E|(E)|i GE: EE+T|T TT*F|F F(E)|iü 附加去掉二義性的信息:例如規(guī)定 先做 * / 再做 + - 等3.6 句型的分析l 自上而下(推導(dǎo))關(guān)鍵是確定當(dāng)前推導(dǎo)的規(guī)則l 自下而上(歸約)關(guān)鍵是確定當(dāng)前歸約的句柄3.7 文法的實(shí)用限制和變換 【老師木有圈概念】l 有害規(guī)則:文法G中形如U>U的規(guī)則l 多余規(guī)則:

9、52; 左部非終結(jié)符號U不出現(xiàn)在任何其他規(guī)則的右部(開始符除外),即該非終結(jié)符是不可到達(dá)的ü 若在推導(dǎo)中使用該規(guī)則,則再也不能推出終結(jié)符號串,即該非終結(jié)符是不可終止的l 其它:ü 不含有左遞歸規(guī)則A>Aa ü 不允許有空規(guī)則 A>本章有大題:1) 語言與文法的轉(zhuǎn)換2) 寫出推導(dǎo)過程、構(gòu)造語法樹3) 短語、簡單短語、句柄4) 判斷二義性,給出反例第四章 詞法分析 詞法分析是編譯中的第一個(gè)階段,它的主要任務(wù)是從左到右逐個(gè)字符地對源程序進(jìn)行掃描,產(chǎn)生一個(gè)個(gè)單詞序列,用以語法分析。4.1 詞法分析程序的設(shè)計(jì) 【木有概念】l 單詞類別:保留字、標(biāo)識符、常量、運(yùn)算

10、符、界限符l 輸出的單詞符號:通常用二元式表示:(單詞種別,單詞自身的值)4.2 單詞的描述工具 【將語言用正規(guī)式寫出】l 正規(guī)式、正規(guī)集ü 是正則式,表示空集ü 2)是正則式,表示ü 每個(gè)aV是正則式,表示aü 若P和Q是正則式,分別表示正則集L(P)和L(Q),則 P|Q是正則式,表示L(P)L(Q) “或” PQ是正則式,表示L(P)L(Q)“聯(lián)結(jié)” P*是正則式,表示L(P)* “星閉包” (P)是正則式,表示L(P)ü 僅由有限次使用上述步驟得到的正則式,才是V上的正則式。運(yùn)算優(yōu)先次序?yàn)?* .|l 例子:以ab結(jié)尾的所有串: (a|

11、b)*ab只包含一個(gè)a的所有串: b*ab*包含偶數(shù)個(gè)b但不含a的所有串: (bb)*每個(gè)a之前必須都有一個(gè)b的所有串: (ba|b)*不包含ab子串的所有串: b*a*l 正規(guī)文法構(gòu)造正規(guī)式設(shè)X是正則變量,a和b是正則式,且X=aX+b 則 X=a*b證明:正則式方程X=aX+b等價(jià)于以下正則規(guī)則:XaX|b4.3 有窮自動機(jī)FA4.3.1 確定的有窮自動機(jī)DFA “確定”即f是單值函數(shù) - 初態(tài) + 終態(tài) 可識別的l 是一個(gè)五元組: M =(K,VT,f,S,Z) K:有窮狀態(tài)集;VT:有窮的輸入字母表;f:K×VTK是狀態(tài)轉(zhuǎn)換函數(shù),即f(W,a)=U表示當(dāng)前狀態(tài)W下,輸入a,轉(zhuǎn)

12、到狀態(tài)U。S:唯一的開始狀態(tài),SK;Z:終止?fàn)顟B(tài)集,是K的非空子集l 可識別的定義:有一條從初態(tài)到終態(tài)的路徑產(chǎn)生x,則x為DFA所能識別的符號串。l 不可識別的兩種情況:讀完?duì)顟B(tài)不停在終態(tài);出現(xiàn)不存在的映射,使自動機(jī)無法繼續(xù)。l 所有DFA所能識別的字符串集合稱為DFA所接受的語言,記為L(DFA)4.3.2 不確定的有窮自動機(jī)NFAl 與DFA的區(qū)別: “非確定”即f是多值函數(shù),且輸入可允許為;初態(tài)不唯一4.3.3 NFA轉(zhuǎn)換為等價(jià)的DFA ll Ia即從I中任一狀態(tài)出發(fā),經(jīng)a?。商^a弧之后的任意條弧)可達(dá)到的狀態(tài)集l move(I,a) 表示I中狀態(tài)經(jīng)過一條a邊可到達(dá)的狀態(tài)的集合初態(tài)S

13、 : I =-CLOSURE(S)=S,3,1 Ia=3,1,5 記為 315 Ib=3,1,6 記為 316將新狀態(tài)添入I,開一新行,求其Ia和Ib。如此反復(fù),直至不再產(chǎn)生新的狀態(tài)為止。含Z的狀態(tài)均是終態(tài)。IMove(I,a)IaMove(I,b)IbS31353153631631535231524Z363163163531536231624Z31524Z352431524Z3643164Z31624Z3543154Z362431624Z3164Z3543154Z362431624Z3154Z352431524Z3643164Z得新初態(tài): S31 。 終態(tài)集:31524Z、31624Z、31

14、64Z、3154Z4.3.4 確定有窮自動機(jī)的化簡【最小化】l 最小DFA: 1、沒有多余狀態(tài)(不能到達(dá),不能終止) 2、沒有兩個(gè)狀態(tài)是互相等價(jià)l 化簡方法:a) 將S劃分為終態(tài)集和非終態(tài)集,得S=Z,S-Zb) 遞歸地分割S中的子集,使得任何兩個(gè)不同子集的狀態(tài)都是可區(qū)分的,而同一個(gè)子集中的狀態(tài)都是等價(jià)的c) S中的每個(gè)子集合并為一個(gè)狀態(tài)d) 含原初態(tài)的狀態(tài)為初態(tài);含原終態(tài)的狀態(tài)為終態(tài)4.4 正規(guī)式和有窮自動機(jī)的等價(jià)性4.5 正規(guī)文法和有窮自動機(jī)的等價(jià)性本章大題:1、自動機(jī)的確定化 2、最小化 3、已知文法構(gòu)造自動機(jī)第五章 自頂而下語法分析方法語法分析是編譯程序的核心部分。作用是識別由詞法分析

15、給出的單詞符號序列是否是給定文法的正確句子。分為自頂向下分析(確定分析、不確定分析)、自底向上分析(算法優(yōu)先分析、LR分析)。5.1 確定的自頂向下分析思想l First集: bÎ (VT È VN )*First(b)= aÎVT | Þba.È(if b Þ then ) l Follow集:Follow(A)= aÎVT | SÞ.Aa. È (if SÞ.A then # )l Select集:Select(Ab) = First(b) , 當(dāng)ÏFirst(b)=(First(

16、b)-e) È Follow(A), 當(dāng)ÎFirst(b)l LL(1)文法:對于每個(gè)非終結(jié)符U有多個(gè)不同的產(chǎn)生式 U UbSelect(U) Select(Ub) = 【充要條件】第1個(gè)L表示從左向右掃描輸入串,第2個(gè)L表示將用最左推導(dǎo),1表示向右看一個(gè)符號便可決定選擇哪個(gè)產(chǎn)生式進(jìn)行推導(dǎo)5.2 LL(1)文法的判別 【建議:只寫出select即可,免得first、follow出錯(cuò)扣分】l 舉例:5.3 等價(jià)變換l 消除左公因子1) 產(chǎn)生式形如:Aba®1|ba2|ban| g g表示不以a開頭的字符串2) 提取左公共因子: A®a(b1|b2|bn)|

17、 g3) 引進(jìn)非終極符A,使產(chǎn)生式替換為:A ® a A¢ | g A¢ ® b1|b2 | bnl 消除左遞歸直接左遞歸:A®Ab AÎVN, b ÎV*間接左遞歸:A®Bb B®Aa A,BÎVN, a ,b ÎV*對直接左遞歸形如: A ® Aa1|Aa2|Aam|b1|b2|bn消除直接左遞歸,引入新的非終結(jié)符A¢: A ® b1A¢|b2A¢|bnA¢ A¢ ® a1A¢|a2A

18、2;|amA¢| e注意:1、不一定每個(gè)文法的左公共因子都能在有限步內(nèi)替換成無公共因子的文法;2、沒左公共因子、沒左遞歸只是LL(1)的必要條件,但并非充分條件5.4 不確定的自頂向下分析思想【無】5.5 確定的自頂向下分析方法 【預(yù)測分析方法 = LL(1)方法】l 分析程序l 符號棧l 預(yù)測分析表【構(gòu)造預(yù)測分析表】LL(1)分析步驟:1、 判斷是否為LL(1)文法,求出select集2、 根據(jù)select集構(gòu)造預(yù)測分析表3、 寫出分析過程 è 分析棧、剩余輸入串、推導(dǎo)所用產(chǎn)生式或匹配【3列】大題:1、判斷是否為LL(1)文法 2、文法的等價(jià)變換 3、寫分析過程 P95

19、表5.4第六章 自底而上優(yōu)先分析 【也稱移進(jìn)-歸約分析】ü > 就歸約 ; < 、= 則移進(jìn) ü 歸約順序:等同:a=b 同時(shí);先于:a<b b先a后;后于:a>b a先b后 ü b=c + c=b 不能推出 b=b。 è優(yōu)先關(guān)系必須相鄰l 歸約中的動作有4類移入:讀入一個(gè)符號并把它歸約入棧。歸約:當(dāng)棧中的部分形成一個(gè)句柄(棧頂?shù)姆栃蛄校r(shí),對句柄進(jìn)行歸約。接受:當(dāng)棧中的符號僅有#和識別符號時(shí),輸入符號也到達(dá)結(jié)尾時(shí),執(zhí)行接受動作。當(dāng)識別程序覺察出錯(cuò)誤的時(shí)候,表明輸入符號串不是句子。進(jìn)行錯(cuò)誤處理l 簡單優(yōu)先分析法ü 優(yōu)先

20、關(guān)系的沖突當(dāng)優(yōu)先矩陣中出現(xiàn)值不唯一的元素時(shí),文法不適合使用優(yōu)先識別技術(shù)來識別句型ü 簡單優(yōu)先分析法是按照文法符號(終結(jié)符和非終結(jié)符)的優(yōu)先關(guān)系確定句柄的l 算符優(yōu)先分析法ü 與簡單優(yōu)先的區(qū)別:簡單優(yōu)先技術(shù)對符號表中的所有符號之間建立優(yōu)先關(guān)系。算符優(yōu)先分析技術(shù)只在終結(jié)符號之間建立優(yōu)先關(guān)系ü 木有包含 相鄰兩個(gè)非終結(jié)符的句型 的文法 稱為 算符文法。ü 人為確定:(0)i的優(yōu)先級最高(1)­優(yōu)先級僅次于i,右結(jié)合(2)*和/優(yōu)先級次之,左結(jié)合(3)+和-優(yōu)先級最低,左結(jié)合(4)括號(,)的優(yōu)先級大于括號外的運(yùn)算符,小于括號內(nèi)的運(yùn)算符,左括號的優(yōu)先性

21、大于右括號(5)#的優(yōu)先性低于與其相鄰的運(yùn)算符大題:判斷文法是否為簡單優(yōu)先關(guān)系第七章 LR分析7.1 LR分析概述l LR分析方法是 無回溯的“移進(jìn)-歸約”方法l LR分析器的組成:ü 總控程序。也稱為驅(qū)動程序ü 分析表或分析函數(shù)。可分為:動作(ACTION)、狀態(tài)轉(zhuǎn)換(GOTO)ü 分析棧。包括文法符號棧和相應(yīng)的狀態(tài)棧l 四種技術(shù):如下 LR(0) SLR(1) LR(1) LALR(1)7.2 LR(0)分析l 能力最弱,理論上最重要l 活前綴:不包含句柄之后的符號的前綴l 可歸前綴:包含句柄的活前綴l LR(0)的項(xiàng)目分類:1) 移進(jìn)項(xiàng)目:圓點(diǎn)后面為終結(jié)符,

22、對應(yīng)移進(jìn)狀態(tài)。分析時(shí)把a(bǔ)移進(jìn)符號棧。2) 待約項(xiàng)目:圓點(diǎn)后為非終結(jié)符,表明等待B所能退出的串歸約為B后,才可繼續(xù)分析A的右部。3) 歸約項(xiàng)目:圓點(diǎn)在最右端。表明已分析完,句柄已形成,可被歸約。4) 接受項(xiàng)目:表明已分析成功l 沖突分類:移進(jìn)和歸約同時(shí)存在 ; 歸約和規(guī)約項(xiàng)目同時(shí)存在。l 構(gòu)造識別活前綴的DFAl 構(gòu)造LR(0)分析表l 如果每個(gè)入口不含多重定義,則稱它為文法G的一張LR(0)表。具有LR(0)表的文法G稱為LR(0)文法。LR(0)文法是無二義的。l 當(dāng)出現(xiàn)移進(jìn)規(guī)約沖突時(shí),文法不是LR(0)文法,為解決,引進(jìn)SLR(1)法7.3 SLR(1)分析l 如果一個(gè)LR(0)項(xiàng)目集規(guī)范

23、族中含有如下的項(xiàng)目集II= X ®a×bb, A ® a× 存在移進(jìn)-規(guī)約沖突但是若【條件】FOLLOW(A) Ç b = f ,沖突便可以解決l 解決辦法:當(dāng)在狀態(tài)I面臨符號a時(shí):1、對 a=b 則action I , b = closure( X ®ab.b )移進(jìn)2、對 aÎFOLLOW (A) 則 action I , a =用 A ®b×歸約 l 就以上解決方法,稱為SLR(1)分析。數(shù)字1的意思是,在分析過程中頂多只要向前看一個(gè)符號。l LR(0)與SLR(1)的區(qū)別:前者有歸約項(xiàng)時(shí),下一步馬

24、上可以歸約。后者只有下一符號是歸約到的符號的follow集才可以歸約。l SLR(1)的局限:有可能移進(jìn)一個(gè)符號可以構(gòu)造出兩條路徑,因上述的【條件】可能不成立。此時(shí),既不是 LR(0),也不是SLR(1)。為解決,引進(jìn)LR(1)。7.4 LR(1)分析l 基本思想:如果存在規(guī)范推導(dǎo) S Þ dAw Þ dbaw 當(dāng)且僅當(dāng)當(dāng)前輸入的符號為aÎFirst(w#)時(shí),才能用產(chǎn)生式A>ba進(jìn)行歸約。因此,在LR(1)方法中重新定義項(xiàng)目,使每個(gè)項(xiàng)目附帶一個(gè)向前搜索符。l A®a.b,a A®a.b:核,為LR(0)項(xiàng)目; a:向前搜索符,要么是一個(gè)

25、終結(jié)符,要么是輸入結(jié)束標(biāo)記#。 a只對規(guī)約項(xiàng)目起作用。多個(gè)時(shí),可用a/b/cl LR(1)文法滿足下面兩個(gè)條件1) 如果一個(gè)項(xiàng)目集里有項(xiàng)目A > uxv, a,x是終結(jié)符,那就不會有項(xiàng)目B > u,x 2) 項(xiàng)目集里所有歸約項(xiàng)目的向前搜索符不相交,即不能同時(shí)含有項(xiàng)目A > u,a 和B > v,al 每個(gè)SLR(1)文法都是 LR(1)文法7.5 LALR(1)分析 【不考大題?但要知道同心集的概念】l 同心集【概念】?狀態(tài)內(nèi)部的項(xiàng)目,除去各向前搜索符不一樣外,其它都一樣。合并后心仍相同,向前搜索符合并在一起,轉(zhuǎn)換函數(shù)也合并在一起。l 基本思想:合并同心集(1) 合并同

26、心集后,對某些錯(cuò)誤發(fā)現(xiàn)的時(shí)間會產(chǎn)生推遲,但是錯(cuò)誤出現(xiàn)的位置仍是準(zhǔn)確的。LR(1)分析法強(qiáng)于LALR(1)分析法,如果文法是LALR(1)文法,則也是LR(1)文法,反之不然。(2)LR(1)項(xiàng)目集不存在動作沖突,合并同心集后會不會產(chǎn)生新的沖突? 1)不會產(chǎn)生新的移進(jìn)-歸約沖突(P148) 2)會產(chǎn)生新的歸約-歸約沖突(P152)大題:1、判斷文法是否為LR(0)、SLR(1)、LR(1) 2、分析過程:符號棧、分析表第八章 語法制導(dǎo)翻譯和中間代碼生成【難點(diǎn)】【概念】l 屬性文法:接近形式化的語義描述方法,是一組屬性和屬性等式(斷言或謂詞)組成。是一個(gè)三元組:A=(G,V,F)G:是一個(gè)上下文無

27、關(guān)文法。V:有窮的屬性集,每個(gè)屬性與文法的一個(gè)終結(jié)符或非終結(jié)符相連。F:關(guān)于屬性的屬性斷言或謂詞集。每個(gè)斷言與一個(gè)產(chǎn)生式相聯(lián)。l 值:val; 類型:type; id.entry:id在符號表的位置l 綜合屬性:從其子結(jié)點(diǎn)的屬性值計(jì)算出來的l 繼承屬性:從其兄弟結(jié)點(diǎn)和父結(jié)點(diǎn)的屬性值計(jì)算出來的l è非終結(jié)符既有綜合屬性也有繼承屬性,開始符沒有繼承屬性,終結(jié)符只有綜合屬性。l L-屬性:既包括綜合屬性,又包括繼承屬性,其屬性用深度優(yōu)先的順序從左至右計(jì)算。l S-屬性:是L-屬性的一個(gè)特例,僅含有綜合屬性的屬性文法。屬性的計(jì)算,采用自底向上的分析。l è歸約句柄 相當(dāng)于 執(zhí)行動作。l 逆波蘭式(后綴式): a+b è ab+ ; a*b è ab* ; a:=b*c+b*d è abc*bd*+:=GOTO L è L jumpif E then s1 else s2 èES1S2¥l 三地址代碼(四元式):顯示引用l 語法結(jié)構(gòu)樹(三元式):臨時(shí)變量lE.true 真出口 、 E.false 假出口、 拉鏈、 回

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論