版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
chapter11、何謂源程序、目標(biāo)程序、翻譯程序、編譯程序和解釋程序?它們之間可能有何種關(guān)系?源程序:用源語言編寫程序。目標(biāo)程序:源程序經(jīng)翻譯程序過加工處理后生成程序。翻譯程序:將源程序轉(zhuǎn)換為與其邏輯上等價(jià)目標(biāo)程序。編譯程序:源語言為高級(jí)語言,目口號(hào)言為匯編語言或機(jī)器語言翻譯程序。解釋程序:源語言程序作為輸入,但不產(chǎn)生目標(biāo)程序,而是邊解釋邊執(zhí)行源程序本身。①先翻譯后執(zhí)行①邊解釋邊執(zhí)行②執(zhí)行速度快②
有利于程序調(diào)試③屢次運(yùn)算③1次運(yùn)算第1頁2、一個(gè)經(jīng)典編譯系統(tǒng)通常由有哪些部分組成?各部分主要功效是什么?chapter1編譯系統(tǒng)編譯程序語法分析語義分析與中間代碼生成優(yōu)化目標(biāo)代碼生成運(yùn)行系統(tǒng)詞法分析第2頁②語法分析(SyntaxAnalysis):
在詞法分析基礎(chǔ)上將單詞序列分解成各類語法短語,如“程序”,“語句”,“表示式”等等。③語義分析(SyntacticAnalysis):
語義分析是在語法分析程序確定出語法短語后,審查有沒有語義錯(cuò)誤,并為代碼生成階段搜集類型信息。chapter1①詞法分析(LexicalAnalysis):
從左到右一個(gè)字符一個(gè)字符讀入源程序,對(duì)組成源程序字符串進(jìn)行掃描和分解,從而識(shí)別出一個(gè)個(gè)單詞(也稱單詞符號(hào)或簡(jiǎn)稱符號(hào))。
第3頁chapter1⑤代碼優(yōu)化(Optimizationofcode):
為了使生成目標(biāo)代碼更為高效,能夠?qū)Ξa(chǎn)生中間代碼進(jìn)行變換或進(jìn)行改造,這就是代碼優(yōu)化。⑥代碼生成(Generationofcode):
目標(biāo)代碼生成是編譯器最終一個(gè)階段。在生成目標(biāo)代碼時(shí)要考慮以下幾個(gè)問題:計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)、指令系統(tǒng)、存放器分配以及內(nèi)存組織等。④中間代碼生成(Generationofintermediatecode):
完成語法分析和語義處理工作后,編譯程序?qū)⒃闯绦蜃兂梢粋€(gè)內(nèi)部表示形式,這種內(nèi)部表示形式叫做中間語言或稱中間代碼,它是一個(gè)結(jié)構(gòu)簡(jiǎn)單、含義明確記號(hào)系統(tǒng)。第4頁chapter21.寫出C語言和Java語言輸入字母表。C語言:0~9數(shù)字,大小寫英文字母,鍵盤上可見字符Java語言:Unicode能夠包含全部字符。6.文法G6為:N→D|NDD→0|1|2|3|4|5|6|7|8|9
(1)G6語言是什么?G6語言是:
0~9數(shù)字組成任意非空串L(G6)={x|x∈{0,1,2,3,4,5,6,7,8,9}+}(2)給出句子0127、34和568最左和最右推導(dǎo)。第5頁7、寫一文法,使其語言是奇數(shù)集。要求:不以0打頭。復(fù)雜情況:分三部分末尾:以1|3|5|7|9結(jié)尾(一位):D→1|3|5|7|9開頭:除了0任意數(shù)字中間部分:空或者任意數(shù)字串D→1|3|5|7|9C→CA|εA→0|B所以題目要求文法G[N]能夠?qū)懗桑篘→BCD|DD→1|3|5|7|9B→2|4|6|8|DC→CA|εA→0|BB→2|4|6|8|D第6頁9、證實(shí)文法:S→iSeS|iS|i
是二義。二義性含義:假如文法存在某個(gè)句子對(duì)應(yīng)兩棵以上不一樣語法樹,或者兩種以上不一樣最左/右推導(dǎo),則稱這個(gè)文法是二義。首先:找到此文法對(duì)應(yīng)一個(gè)句子iiiei其次:結(jié)構(gòu)與之對(duì)應(yīng)兩棵語法樹SiSeSiSiiSiSiSeSii結(jié)論:因?yàn)樵撐姆ù嬖诰渥觟iiei對(duì)應(yīng)兩棵不一樣語法樹,因而該文法是二義。第7頁11、給出下面語言對(duì)應(yīng)文法L1={anbnci|n≥1,i≥0}G1(S):S→ABA→aAb|abB→cB|ε從n,i不一樣取值來把L1分成兩部分:A→aAb|ab前半部分是anbn:
后半部分是ci:B→Bc|ε所以整個(gè)文法G1[S]能夠?qū)憺椋旱?頁L2={aibncn|n≥1,i≥0}G2(S):S→ABA→aA|εB→bBc|bcL3={anbnambm|m,n≥0}G3(S):S→ABA→aAb|εB→aBb|ε第9頁L4={1n0m1m0n|n,m≥0}能夠看成是兩部分:剩下兩邊部分就是:S→1S0中間部分是0m1m
:A→0A1|ε所以G4[S]能夠?qū)憺椋篠→1S0|AA→0A1|ε|A第10頁chapter37.結(jié)構(gòu)以下正規(guī)式對(duì)應(yīng)DFA。步驟:①.依據(jù)正規(guī)式畫出對(duì)應(yīng)狀態(tài)轉(zhuǎn)換圖;②.依據(jù)狀態(tài)轉(zhuǎn)換圖畫出對(duì)應(yīng)狀態(tài)轉(zhuǎn)換矩陣;③.依據(jù)狀態(tài)轉(zhuǎn)換矩陣得到重命名后狀態(tài)轉(zhuǎn)換矩陣;④.依據(jù)重命名后狀態(tài)轉(zhuǎn)換矩陣得出最終DFA.問題:將狀態(tài)轉(zhuǎn)換圖與DFA混同。第11頁1(0|1)*101①.狀態(tài)轉(zhuǎn)換圖abadb1(0|1)*101a1(0|1)*101dcef1εε01101ggg第12頁②.狀態(tài)轉(zhuǎn)換矩陣II0I1{a}Φ{b,c,d}{b,c,d}{c,d}{c,d,e}{c,d}{c,d}{c,d,e}{c,d,e}{c,d,f}{c,d,e}{c,d,f}{c,d}{c,d,e,g}{c,d,e,g}{c,d,f}{c,d,e}1abdcef1εε0101g第13頁II0I1{a}Φ{b,c,d}{b,c,d}{c,d}{c,d,e}{c,d}{c,d}{c,d,e}{c,d,e}{c,d,f}{c,d,e}{c,d,f}{c,d}{c,d,e,g}{c,d,e,g}{c,d,f}{c,d,e}③.重命名后狀態(tài)轉(zhuǎn)換矩陣S01A(始態(tài))ΦBBCDCCDDEDECF(終態(tài))F(終態(tài))EDAB10C1D010E10101F④.DFA第14頁1(1010*|1(010)*1)*0abdc1εε0e0101fghiεε01110jklmnεε①.狀態(tài)轉(zhuǎn)換圖第15頁②.狀態(tài)轉(zhuǎn)換矩陣II
0I
1{0}Φ{1,2,3}{1,2,3}{4}{5,9,10,11}{5,9,10,11}{6,12}{2,3}{6,12}Φ{2,3,7,8,13}{2,3}{4}{5,9,10,11}{2,3,7,8,13}{2,3,4,8,10,11}{5,9,10,11}{2,3,4,8,10,11}{2,3,4,8,12}{2,3,5,9,10,11}{2,3,4,8,12}{2,3,4,8}{5,9,10,11,13}{2,3,5,9,10,11}{4,6,12}{2,3,5,9,10,11}{2,3,4,8}{2,3,4,8}{5,9,10,11}{5,9,10,11,13}{6,10,11,12}{2,3}{4,6,12}Φ{2,3,7,8,13}{6,10,11,12}{12}{2,3,7,8,13}{12}Φ{13}{13}{10,11}Φ{10,11}{12}{2,3}第16頁③.重命名后狀態(tài)轉(zhuǎn)換矩陣II
0I
11Φ22344565Φ7634784891091112101310111141214613Φ71415715Φ161617Φ17156④.DFA第17頁8、給出下面正規(guī)表示式(1)以01結(jié)尾二進(jìn)制數(shù)串。(0|1)*01(2)能被5整除十進(jìn)制數(shù)。0|5(0|5)|(1|2|3|4|5|6|7|8|9)(0|1|2|3|4|5|6|7|8|9)*(4)英文字母組成全部符號(hào)串,要求符號(hào)串中字母按字典序排列。(A|a)*(B|b)*(C|c)*…(Z|z)*(3)包含奇數(shù)個(gè)1或奇數(shù)個(gè)0二進(jìn)制串0*1(0|10*1)*|1*0(0|10*1)*第18頁(5)沒有重複出現(xiàn)數(shù)字?jǐn)?shù)字符號(hào)串全體令ri=i|,i=0,1,2...9R0|R1|R2|...|R9記為∑Rii(0,1,2...,9)P(0,1,2...,9)表示0,1,2...,9全排列∑ri0ri1...ri9ri0ri1...ri9
P(0,1,2...,9)8、給出下面正規(guī)表示式(6)最多有一個(gè)重複出現(xiàn)數(shù)字?jǐn)?shù)字符號(hào)串全體∑i∑ri0ri1...ri9
i(0,1,2...,9)ri0ri1...ri9P(0,1,2...,9)(7)不包含字串a(chǎn)bb由a和b組成符號(hào)串全體b*(a*|(ba)*)*第19頁9、對(duì)下面情況給出DFA及正規(guī)表示式:(1){0,1}上含有子串010全部串。正規(guī)式:(0|1)*010(0|1)*DFA做法同第7題。(2){0,1}上不含子串010全部串。正規(guī)式:1*(0|11*1)*1*0*1*(0|11)*(0|1)1*(0|11)*1*第20頁12、將圖3.18(a)和(b)分別確定化和最少化。(a)aaa,b10①.狀態(tài)轉(zhuǎn)換矩陣IIaIb
{0}{0,1}{1}{1}{0,1}{0,1}{1}{0}φ②.重命名后狀態(tài)轉(zhuǎn)換矩陣IIaIb
01221120φ0a2baba③.DFA④.最小化Π0=({0,1},{2})1{0,1}a={1}{0,1}b={2}所以,不能再分02baa第21頁023145aaaabbbbbbaa(b)這道題實(shí)質(zhì)上已經(jīng)是確定化了,所以我們只需最小化Π:{2,3,4,5}{0,1}{2,3,4,5}a={0,1,3,5}分屬兩區(qū),所以分為{2,4}{3,5}{0,1}a={1}{0,1}b={2,4}所以0,1等價(jià){2,4}a={0,1}{2,4}b={3,5}所以2,4等價(jià){3,5}a={3,5}{3,5}b={2,4}所以3,5等價(jià)所以分為
{0,1}{2,4}{3,5}
023aabbba第22頁14、結(jié)構(gòu)一個(gè)DFA,它接收Σ={0,1}上全部滿足以下
條件字符串:每個(gè)1都有0直接跟在右邊。思緒:先寫出滿足條件正規(guī)式,由正規(guī)式結(jié)構(gòu)
NFA,再把NFA確定化和最小化。滿足條件正規(guī)式:(0|10)*0110yx(0|10)*xy12100第23頁xy12100確定化:01{X,1,Y}{1,Y}{2}{1,Y}{1,Y}{2}{2}{1,Y}φ給狀態(tài)編號(hào):0101211221φ第24頁021
01100最小化:{0,1},{2}{0,1}0={1}{0,1}1={2}{2}0={0},{2}1=
??{2}或{0,1}所以{0,1}不可分,用狀態(tài)0代表它們02100第25頁15、給定右線性文法G:求一個(gè)與G等價(jià)左線性文法。S→0S|1S|1A|0BA→1C|1B→0C|0C→0C|1C|0|1SABCZ001110001101G[Z]:Z→Z0|Z1|B0|A1B→A0|0A→B1|1確定化、最小化后DFA為:SB0A110Z010,1第26頁補(bǔ)充:結(jié)構(gòu)一右線性文法,使它與以下文法等價(jià):
S→ABA→UTU→a|aUT→b|bTB→c|cB
并依據(jù)所得右線性文法,結(jié)構(gòu)出對(duì)應(yīng)狀態(tài)轉(zhuǎn)換圖。思緒:先寫出原文法所描述語言L(G)={ambnck|m,n,k≥1}G[S]:
S→aS|aBB→bB|bCC→cC|caSaCbcBbcT第27頁chapter44.1、考慮下面文法G1:S→a|∧|(T)
T→T,S|S(1)消去G1左遞歸;S→a|∧|(T)T→ST’T’→,ST’|ε(2)經(jīng)改寫后文法是否是LL(1)文法,給出預(yù)測(cè)分析表。經(jīng)改寫后文法滿足3個(gè)條件,所以是LL(1)第28頁預(yù)測(cè)分析表結(jié)構(gòu)算法:1.對(duì)文法中每個(gè)產(chǎn)生式A→α執(zhí)行第二步和第三步;FIRST(S)={a,∧,(}FIRST(T)={a,∧,(}FIRST(T’)={,,ε}FOLLOW(S)={),,,#}
FOLLOW(T)={)}
FOLLOW(T)={)}
a∧(,)#S
T
T’
S→aS→∧S→(T)T→ST’T→ST’T→ST’T’→,ST’T’→ε第29頁預(yù)測(cè)分析表結(jié)構(gòu)算法:1.對(duì)文法中每個(gè)產(chǎn)生式A→α執(zhí)行第二步和第三步;2.對(duì)每個(gè)終止符a∈FIRST(α),把A→a加到M[A,a]中;S→a;S→∧;S→(T);T→ST’;T’→,ST’T’→εFTRST(a)={a}FIRST(∧)={∧}FIRST((T))={(}FIRST(ST’)={a,∧,(}FIRST(,ST’)={,}FIRST(ε)={ε}
a∧(,)#S
T
T’
S→aS→∧S→(T)T→ST’T→ST’T→ST’T’→,ST’3.若ε∈FIRST(α),則對(duì)于任何b∈FOLLOW(A)把A→α加至M[A,b]中FOLLOW(T’)=FOLLOW(T)={)}T’→ε第30頁遞歸子程序:procedureS;begin ifsym='a'orsym='^' thenabvanceelseifsym='(' thenbegin advance;T; ifsym=')'thenadvance; elseerror; end elseerrorend;第31頁procedureT;begin S;T’EndprocedureT’;begin ifsym=‘,’thenbenginadvance;S;T’endEndsym:是輸入串指針I(yè)P所指符號(hào)advance:是把IP調(diào)至下一個(gè)輸入符號(hào)error:是犯錯(cuò)診察程序第32頁補(bǔ)充題:有文法:
E→TE’E’→ATE’|εT→FT’T’→MFT’|εF→(E)|iA→+|-M→*|/(1)求First、Follow集,判斷是否是LL(1)文法?(2)若是結(jié)構(gòu)LL(1)分析表?(3)簡(jiǎn)述LL(1)分析器工作原理。第33頁4.2:有文法:
E→TE’E’→+E|εT→FT’T’→T|εF→PF’F’→*F’|εP→(E)|a|b|^(1)求First、Follow集,判斷是否是LL(1)文法?(2)若是結(jié)構(gòu)LL(1)分析表?(3)簡(jiǎn)述LL(1)分析器工作原理。第34頁E→TE’E’→ATE’|εT→FT’T’→MFT’|εF→(E)|iA→+|-M→*|/FIRST(M)={*,/}FIRST(A)={+,-}FIRST(F)={(,i}FIRST(T’)={*,/,ε}FIRST(T)={(,i)FIRST(E’)={+,-,ε}FIRST(E)={(,i}FOLLOW(E)={#,)}FOLLOW(E’)={#,)}FOLLOW(T)={+,-,#,)}FOLLOW(T’)={+,-,#,)}FOLLOW(F)={*,/,+,-,#,)}FOLLOW(A)={(,i}FOLLOW(M)={(,i}EE→TE’
E→TE’
E’
E→ATE’E→ATE’
E’→εE’→εTT→FT’
T→FT’
T’
T’->εT’→εT’→MFT’T’→MFT’
T’→εT’→εFF→i
F→(E)
A
A→+A→-
M
M→*M→/
i+-*/()#第35頁P(yáng)81.2.對(duì)文法G:E→TE’E’→+E|εT→FT’T’→T|εF→PF’F’→*F’|εP→(E)|a|b|∧1)FIRST(E)=FIRST(T)=FIRST(F)=FIRST(P)={(,a,b,∧}FIRST(E’)={+,ε}FIRST(T’)=FIRST(T)∪{ε}={(,a,b,∧,ε}FIRST(F’)={*,ε}FOLLOW(E)={#,)}FOLLOW(E’)=FOLLOW(E)={#,)}FOLLOW(T)=FIRST(E’)\ε∪FOLLOW(E)={+,#,)}FOLLOW(T’)=FOLLOW(T)={+,#,)}FOLLOW(F)=FIRST(T’)\ε∪FOLLOW(T)={(,a,b,∧,+,#,)}FOLLOW{F’)=FOLLOW(F)={(,a,b,∧,+,#,)}FOLLOW(P)=FIRST(F’)\ε∪FOLLOW(F)={*,(,a,b,∧,+,#,)}(ab∧+*)#EE→TE’E→TE’ETE’ETE’E’E’+EE’εE’εTTFT’TFT’TFT’TFT’T’T’TT’TT’TT’TT’εT’εT’εFFPF’FPF’FPF’FPF’F’F’εF’εF’εF’εF’εF’F’F’εF’εPP(E)PaPbP^第36頁2)考慮以下產(chǎn)生式:FIRST(+E)∩FIRST(ε)={+}∩{ε}=φFIRST(+E)∩FOLLOW(E')={+}∩{#,)}=φFIRST(T)∩FIRST(ε)={(,a,b,^}∩{ε}=φFIRST(T)∩FOLLOW(T')={(,a,b,^}∩{+,),#}=φFIRST(*F')∩FIRST(ε)={*}∩{ε}=φFIRST(*F')∩FOLLOW(F')={*}∩{(,a,b,^,+,),#}=φFIRST((E))∩FIRST(a)∩FIRST(b)∩FIRST(^)=φ所以,該文法式LL(1)文法.第37頁(ab∧+*)#EE→TE’E→TE’ETE’ETE’E’E’+EE’εE’εTTFT’TFT’TFT’TFT’T’T’TT’TT’TT’TT’εT’εT’εFFPF’FPF’FPF’FPF’F’F’εF’εF’εF’εF’εF’F’F’εF’εPP(E)PaPbP^3)預(yù)測(cè)分析表:第38頁4)程序procedureE;begin ifsym='('orsym='a'orsym='b'orsym='^' thenbeginT;E'end elseerrorendprocedureE';begin ifsym='+' thenbeginadvance;Eend elseifsym<>')'andsym<>'#'thenerrorendprocedureT;begin ifsym='('orsym='a'orsym='b'orsym='^' thenbeginF;T'end elseerrorend 第39頁procedureT';begin ifsym='('orsym='a'orsym='b'orsym='^' thenT elseifsym='*'thenerrorendprocedureF;begin ifsym='('orsym='a'orsym='b'orsym='^' thenbeginP;F'end elseerrorend procedureF';begin ifsym='*' thenbeginadvance;F'endend第40頁procedureP;begin ifsym='a'orsym='b'orsym='^' thenadvance elseifsym='('then begin advance;E; ifsym=')'thenadvance elseerror end elseerrorend;第41頁4.3下面文法中,那些是LL(1)文法,說明理由結(jié)構(gòu)不帶回溯自上而下分析文法條件
1.文法不含左遞歸,
2.對(duì)于文法中每一個(gè)非終止符A各個(gè)產(chǎn)生式候選首符集兩兩不相交。即,若A→1|2|…|n
則FIRST(i)∩FIRST(j)=
(ij)3.對(duì)文法中每個(gè)非終止符A,若它存在某個(gè)候選首符集包含,則FIRST(A)∩FOLLOW(A)=
假如一個(gè)文法G滿足以上條件,則稱該文法G為L(zhǎng)L(1)文法。 第42頁4.3.1SAbcAa|Bb|是,滿足三個(gè)條件4.3.2SAbAa|B|Bb|對(duì)于A不滿足條件34.3.3SABBAAa|Bb|A、B都不滿足條件34.3.4SaSe|BBbBe|CcCe|d滿足條件3第43頁解題思緒:構(gòu)造文法預(yù)測(cè)分析表,通常應(yīng)當(dāng)按以下步驟進(jìn)行:
1.消除文法左遞歸(包含全部直接左遞歸和間接左遞歸)
2.對(duì)消除左遞歸后文法,提取公因子
3.對(duì)經(jīng)過上述改造后文法,計(jì)算它每個(gè)非終結(jié)符FIRST集合和FOLLOW集合;
4.根據(jù)FIRST集合和FOLLOW集合構(gòu)造預(yù)測(cè)分析表:第1步對(duì)文法G每個(gè)產(chǎn)生式Aα執(zhí)行第1步和第3步;第2步對(duì)每個(gè)終結(jié)符a∈FIRST(α),把Aα加至M[A,a]中;第3步若∈FIRST(α),則對(duì)任何b∈FIRST(A),把Aα加至M[A,b]中;第4步把全部無定義M[A,a]標(biāo)上“出錯(cuò)標(biāo)誌”4.4對(duì)下面文法:Expr-ExprExpr(Expr)|VarExprTailExprTail-Expr|VaridVarTailVarTail(Expr)|(1)構(gòu)造LL(1)分析表(2)給出對(duì)句子id--id((id))分析過程第44頁4.4對(duì)下面文法:Expr-ExprExpr(Expr)|VarExprTailExprTail-Expr|VaridVarTailVarTail(Expr)|(1)構(gòu)造LL(1)分析表(2)給出對(duì)句子id--id((id))分析過程解答:FIRST(Expr)={-,(,id}FOLLOW(Expr)={),#}FIRST(ExprTail)={-,}FOLLOW(ExprTail)={),#}FIRST(Var)={id}FOLLOW(Var)={-,),#}FIRST(VarTail)={(,}FOLLOW(VarTail)={-,),#}第45頁4.4對(duì)下面文法:Expr-ExprExpr(Expr)|VarExprTailExprTail-Expr|VaridVarTailVarTail(Expr)|(1)構(gòu)造LL(1)分析表(2)給出對(duì)句子id--id((id))分析過程-id()#ExprExpr-ExprExprVarExprTailExpr(Expr)ExprTaiExprTail-ExprExprTailExprTailVarVaridVarTailVarTailVarTailVarTail(Expr)VarTailVarTail第46頁-id()#ExprExpr-ExprExprVarExprTailExpr(Expr)ExprTaiExprTail-ExprExprTailExprTailVarVaridVarTailVarTailVarTailVarTail(Expr)VarTailVarTail步驟符號(hào)棧輸入串所用產(chǎn)生式0#Exprid--id((id))#開始1#ExprTailvarid--id((id))#ExprVarExprTail2#ExprTailvarTailidid--id((id))#VaridVarTail3#ExprTailvarTail--id((id))#出棧,輸入串後移4#ExprTail--id((id))#VarTail5#Expr---id((id))#ExprTail-Expr(2)給出對(duì)句子id--id((id))分析過程第47頁-id()#ExprExpr-ExprExprVarExprTailExpr(Expr)ExprTaiExprTail-ExprExprTailExprTailVarVaridVarTailVarTailVarTailVarTail(Expr)VarTailVarTail步驟符號(hào)棧輸入串所用產(chǎn)生式5#Expr---id((id))#ExprTail-Expr6#Expr-id((id))#出棧,輸入串後移7#Expr--id((id))#Expr-Expr8#Exprid((id))#出棧,輸入串後移9#ExprTailVarid((id))#ExprVarExprTail10#ExprTailVarTailidid((id))#VaridVarTail11#ExprTailVarTail((id))#出棧,輸入串後移(2)給出對(duì)句子id--id((id))分析過程第48頁-id()#ExprExpr-ExprExprVarExprTailExpr(Expr)ExprTaiExprTail-ExprExprTailExprTailVarVaridVarTailVarTailVarTailVarTail(Expr)VarTailVarTail步驟符號(hào)棧輸入串所用產(chǎn)生式11#ExprTailVarTail((id))#出棧,輸入串後移12#ExprTail)Expr(((id))#VarTail(Expr)13#ExprTail)Expr(id))#出棧,輸入串後移14#ExprTail))Expr((id))#Expr(Expr)15#ExprTail))Exprid))#出棧,輸入串後移16#ExprTail))ExprTailVarid))#ExprVarExprTail17#ExprTail))ExprTailVarTailidid))#VaridVarTail(2)給出對(duì)句子id--id((id))分析過程第49頁-id()#ExprExpr-ExprExprVarExprTailExpr(Expr)ExprTaiExprTail-ExprExprTailExprTailVarVaridVarTailVarTailVarTailVarTail(Expr)VarTailVarTail步驟符號(hào)棧輸入串所用產(chǎn)生式17#ExprTail))ExprTailVarTailidid))#VaridVarTail18#ExprTail))ExprTailVarTail))#出棧,輸入串後移19#ExprTail))ExprTail))#VarTail20#ExprTail))))#ExprTail21#ExprTail))#出棧,輸入串後移22#ExprTail#出棧,輸入串後移23##ExprTail成功(2)給出對(duì)句子id--id((id))分析過程第50頁chapter51、令文法G1為:
E→E+T|TT→T*F|FF→(E)|i
證實(shí)E+T*F是它一個(gè)句型,指出這個(gè)句型全部短語、直接短語和句柄。EE+TT*FT*F是句型E+T*F相對(duì)于T短語E+T*F句型E+T*F相對(duì)于E短語T*F是句型E+T*F相對(duì)于T直接短語T*F是句柄第51頁2、考慮下面表格結(jié)構(gòu)文法G2:
S→a|^|(T)
T→T,S|S(1)給出(a,(a,a))和(((a,a),^,(a)),a)最左和最右推導(dǎo)。(a,(a,a))最左推導(dǎo):S(T)(T,S)(S,S)(a,S)(a,(T))(a,(T,S))(a,(S,S))(a,(a,S))(a,(a,a))(((a,a),^,(a)),a)最左推導(dǎo):S(T)(T,S)(S,S)((T),S)((T,S),S)((T,S,S),S)((S,S,S),S)(((T,S),S,S),S)(((S,S),S,S),S)(((a,S),S,S),S)(((a,a),S,S),S)(((a,a),^,S),S)(((a,a),^,a),S)(((a,a),^,a),a)第52頁(((a,a),^,(a)),a)最右推導(dǎo):S(T)(T,S)(S,S)(S,a)((T),a)((T,S,S),S)((S,S,S),S)(((T,S),S,S),S)(((S,S),S,S),S)(((a,S),S,S),S)(((a,a),S,S),S)(((a,a),^,S),S)(((a,a),^,a),S)(((a,a),^,a),a)(a,(a,a))最右推導(dǎo):S(T)(T,S)(T,(T))(T,(T,S))(T,(T,a))(T,(S,a))(T,(a,a))(S,(a,a))(a,(a,a))第53頁2)指出(((a,a),^,(a)),a)規(guī)范歸約及每一步句柄。S(T)T,Sa(T)ST,ST,S(T)Sa^(T)ST,SaSa句型句柄歸約規(guī)則(((a,a),^,(a)),a)aS→a(((S,a),^,(a)),a)ST→S(((T,a),^,(a)),a)aS→a(((T,S),^,(a)),a)T,ST→T,S(((T),^,(a)),a)(T)S→(T)((S,^,(a)),a)ST→S((T,^,(a)),a)^S→^((T,S,(a)),a)T,ST→T,S((T,(a)),a)aS→a((T,(S)),a)ST→S((T,(T)),a)(T)S→(T)((T,S),a)T,ST→T,S((T),a)TS→(T)(S,a)ST→S(T,a)aS→a(T,S)T,ST→T,S(T)(T)S→(T)S第54頁依據(jù)這個(gè)規(guī)范規(guī)約,給出“移進(jìn)—?dú)w約”過程,并給出它語法樹自下而上結(jié)構(gòu)過程。#符號(hào)棧輸入串:(((a,a),^,(a)),a)#S(T)T,Sa(T)ST,ST,S(T)Sa^(T)ST,SaSa(((aS,TaSS)T,^ST(aST)S)ST,aST)S歸約規(guī)則句柄aS→aST→SaS→aT,ST→T,S(T)S→(T)ST→S^S→^T,ST→T,S第55頁3、(1)計(jì)算練習(xí)2文法G2FIRSTVT和LASTVT。
G2:S→a|^|(T)
T→T,S|SFIRSTVT(S)={a,∧,(}FIRSTVT(T)={,,a,∧,(}LASTVT(S)={a,∧,)}LASTVT(T)={,,a,∧,)}S→(T)().T→T,S
,F(xiàn)IRSTVT(S)﹤.,a,,∧,
,(
﹤.﹤.﹤.T→T,SLASTVT(T),﹥.a,,∧,,),,,,﹥.﹥.﹥.﹥.S→(T)(FIRSTVT(T)﹤.(a,(∧,((,(,﹤.﹤.﹤.﹤.S→(T)LASTVT(T))﹥.a),∧),)),,)﹥.﹥.﹥.﹥.對(duì)待特殊地#,把它看作句型開始和結(jié)束符.依據(jù)#S#同理可得#a,#∧,#(,﹤.﹤.﹤.##.a#,∧#,)#,﹥.﹥.﹥.#,)(^a#,)(^a=.>.>.>.>.>.>.>.>.>.>.>.<.<.<.<.<.<.<.<.<.<.=.1、文法是算術(shù)文法,且不含ε產(chǎn)生式。2、由優(yōu)先關(guān)系矩陣可知,任何兩個(gè)終止符之間優(yōu)先關(guān)系不多于一個(gè)。綜上,該文法是算術(shù)優(yōu)先文法。第56頁﹤.
,a∧()#,
a
∧
(
)
#
﹥.﹥.﹥.﹥.﹥.﹥.﹥.﹥.﹥.﹥.﹥.﹤.﹤.﹤.﹤.﹤.﹤.﹤.﹤.﹤...輸入串(a,(a,a))算符優(yōu)先過程。步驟句型優(yōu)先關(guān)系最左素短語規(guī)約符號(hào)1#(a,(a,a))##2345678﹤.(﹤.a﹥.,﹤.(﹤.a﹥.,﹤.a﹥.)﹥.)﹥.#aS#(S,(a,a))#﹤
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 供應(yīng)鏈中的供應(yīng)鏈決策支持系統(tǒng)考核試卷
- 農(nóng)業(yè)金屬工具行業(yè)政策分析考核試卷
- 員工激勵(lì)與績(jī)效改進(jìn)考核試卷
- 光學(xué)儀器的應(yīng)用領(lǐng)域考核試卷
- 儀器制造中的精密加工技術(shù)考核試卷
- 網(wǎng)頁課程設(shè)計(jì)新的
- 2025-2030全球落地式化學(xué)發(fā)光免疫分析儀行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025-2030全球艾滋病預(yù)防藥行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 餐飲電商學(xué)堂課程設(shè)計(jì)書
- 課程設(shè)計(jì)自評(píng)
- 浙江省安全員C證考試題庫及答案(推薦)
- 《文化苦旅》讀書分享 PPT
- 氧化鋁生產(chǎn)工藝教學(xué)拜耳法
- 2023年十八項(xiàng)醫(yī)療核心制度考試題與答案
- 氣管切開患者氣道濕化的護(hù)理進(jìn)展資料 氣管切開患者氣道濕化
- 管理模板:某跨境電商企業(yè)組織結(jié)構(gòu)及部門職責(zé)
- 底架總組裝工藝指導(dǎo)書
- 簡(jiǎn)單臨時(shí)工勞動(dòng)合同模板(3篇)
- 聚酯合成反應(yīng)動(dòng)力學(xué)
- 上??萍即髮W(xué),面試
- 《五年級(jí)奧數(shù)總復(fù)習(xí)》精編課件
評(píng)論
0/150
提交評(píng)論