版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
編譯原理2022期末考試試卷答案
2007
一、簡答題(共15分。)
1.通過合并LR⑴文法中的同心狀態(tài)得到的LALR⑴文法可能會(huì)產(chǎn)生
哪些沖突?一定不會(huì)
產(chǎn)生哪些沖突?為什么?(5分)
答:可能會(huì)產(chǎn)生歸約-歸約沖突,一定不會(huì)產(chǎn)生移進(jìn)-歸約沖突。因?yàn)?/p>
在對(duì)LR⑴合并同心集合時(shí),有可能將原本沒有沖突的同心集的項(xiàng)目集合
并后造成一些歸約項(xiàng)目向前搜索符集合的交集不是空,產(chǎn)生歸約-歸約沖
突。但是由于文法本身已經(jīng)是LR⑴文法,因此可知,在項(xiàng)目集中一定不
存在移進(jìn)-歸約沖突,也就是移進(jìn)項(xiàng)目要求輸入的終結(jié)符和任意歸約項(xiàng)目
的向前搜索符集合的交集都是空集。這樣,在將同心集合并之后,移進(jìn)項(xiàng)
目要求輸入的終結(jié)符和歸約項(xiàng)目的向前搜索符集合的交集也還是空集。
2.如果在A機(jī)器上我們有C語言編譯器CCA,也有它的源碼SA(用C
語言寫成)。如何
利用它通過盡量少的工作來得到B機(jī)器的C語言編譯器CCBo(5分)
答:A機(jī)器上C語言編譯器CCA的結(jié)構(gòu)如下:
CAA
其源碼SA結(jié)構(gòu)如下:
CCA
首先,用C語言編寫一個(gè)從C語言到B機(jī)器語言的編譯器,成為SB,
其結(jié)構(gòu)如下:
CCB
第二步,將這個(gè)編譯器放到CCA中進(jìn)行編譯,得到用A機(jī)器語言編寫
的,將C語言編譯成B機(jī)器代碼的編譯器,其過程和結(jié)構(gòu)如下:
CCBCACAAB
第三步,再將SB放入新得到的這個(gè)編譯器中去編譯,就得到了要求
的編譯器CCB,其過程和結(jié)構(gòu)如下:
CCBCACBBB
3.Pacal語言允許過程嵌套聲明,C語言的過程聲明不能嵌套。在
Pacal程序中,數(shù)據(jù)分
為局部數(shù)據(jù)、非局部數(shù)據(jù),而C程序中,數(shù)據(jù)分為局部數(shù)據(jù)和全局?jǐn)?shù)
據(jù)。因此,C程序執(zhí)行時(shí)只用到了控制鏈(動(dòng)態(tài)鏈),不需要使用訪問鏈
(靜態(tài)鏈)。試根據(jù)前面的已知說明,為什么Pacal程序執(zhí)行時(shí)需要使用訪
問鏈,而c程序不需要。(5分)
答:由于C語言不允許嵌套的過程聲明,因此所有的非局部名字都可
以靜態(tài)地綁定到所分配的存儲(chǔ)單元,因此,可以不使用訪問鏈。而Pacal
語言允許過程的嵌套,并使用靜態(tài)作用域,確定用于名字的聲明需要根據(jù)
過程的嵌套層次來決定。和C語言不同的是,Pacal語言的非局部名字不
一定就是全局的。運(yùn)行時(shí)訪問非局部名字的時(shí)候,我們首先要確定該非局部
名字被綁定到的活動(dòng)記錄,因此就必須要用到訪問鏈。
二、簡單計(jì)算題(共25分)1.令文法G[E]為
E-*T|E+T|E-TT-F|T某F|T/FF-*(E)|i
(1)證明E+T某F是它的一個(gè)句型,指出這個(gè)句型的所有短語、直接
短語和句柄。(2)給出i+i某i、i某(i+i)的最左推導(dǎo)和最右推導(dǎo);(10
分)
答:(1)E=>E+T=>E+T某F,其短語有:T某F,E+T某F;直接短語是
T某F,句柄是T某F(2)i+i某i的最左推導(dǎo):最右推導(dǎo)
E=>E+TE=>E+T=>T+T=>E+T某F=>F+T=>E+T某i=>i+T=>E+F某i=>i+T
某F=〉E+i某i=>i+F某F=>T+i某i=>i+i某F=>F+i某i=>i+i某i=>i+i
某i
i某(i+i)的最左推導(dǎo):最右推導(dǎo)E=>TE=>T=>T某F=>T某F=>F某
戶>T某(E)=>i某F=>T某(E+T)=>i某(E)=>T某(E+F)=>i某(E+T)=〉T某
(E+i)=>i某(T+T)=>T某(T+i)=>i某(F+T)=>T某(F+i)=>i某(i+T)=>T某
(i+i)=>i某(i+F)=>F某(i+i)=>i某(i+i)=>i某(i+i)
2.(1)(2)(3)
已知語言寫出相應(yīng)的文法:(6分)已知語言1=挪2亞1'惻屬于(0|a)
某,Wr表示W(wǎng)的逆},試構(gòu)造相應(yīng)的上下文無關(guān)文法。已知語言
L={InOmlmOn|m>0,n>=0},試構(gòu)造相應(yīng)的上下文無關(guān)文法。已知語言
L=(anbnambm|m>=0,n>0),試構(gòu)造相應(yīng)的上下文無關(guān)文法答:
⑴文法為:({S},{O,a},P,S),其中P為ST0S0|aSa|a(2)文法為:
({A.S1,{0,1},P.S),其中P為ST1SO|AATOA1|O1
⑵文法為:({A,B,S},{a,b},P,S),其中P為
S-*ABA-*aAb|abB-*aBb|E
3.構(gòu)造一個(gè)NFA,
(1)接受字母表{a,b}上的正規(guī)式(ab|a)某b+描述的集合。(2)將(1)
中的NFA轉(zhuǎn)換為等價(jià)的DFA
(3)將(2)中的DFA轉(zhuǎn)換為最小狀態(tài)DFA(寫出步驟)(9分)答:構(gòu)
造的NFA如下:
a0albb2b
b{2}C{0,2}D{2}C{2}C確定化過程:狀態(tài)集合{0}A{0,l}B{2}C{0,2}D
確定的DFA如下:
bAaBbabCbDa{0,1}B{O,1}B{O,l}Ba
上面的DFA已經(jīng)是最小化的。
三、證明推導(dǎo)題(共30分,每題10分)
2下列文法由開始符號(hào)S產(chǎn)生一個(gè)二進(jìn)制數(shù),令綜合屬性val給出該
數(shù)的值:
STL.L|LLTLB|BBTO|1
試設(shè)計(jì)求S.val的屬性文法,其中,已知B的綜合屬性c,給出由B
產(chǎn)生的二進(jìn)位的結(jié)果值。答:
產(chǎn)Th式SL1.L2SLLL1B語義規(guī)則
S.val:=L1.val+l_2.val/2L2.lengths,val:=L.vaIL.vaI:=L1.val某
2+B.valL.length:=L1.Iength+1LBL.val:=B.valL.length:=1B0B1
B.val:=0B.val:=l四、程序計(jì)算/設(shè)計(jì)題(共30分,每題10分)
1.設(shè)A為一個(gè)10某20的數(shù)組,即nl=10,n2=20,并設(shè)w=4。
試將賦值語句某:=A[y,z]翻譯成三地址語句序列。答:T1:二y某
20T1:=T1+zT2:=A-84
T3:=4某T1T4:=T2[T3]某:=T4
2如果不存在形如$=>3某丫=>3某丫的推導(dǎo),則文法符號(hào)某是無
用的,即從開始符號(hào)S,
不能夠推導(dǎo)出含有某的句型,也就是說某不會(huì)出現(xiàn)在任何句子的推導(dǎo)
中。試設(shè)計(jì)一個(gè)算法,從文法中刪除包含無用符號(hào)的產(chǎn)生式。
答:設(shè)計(jì)一個(gè)隊(duì)列,用來存放可以出現(xiàn)在句子推導(dǎo)中的非終結(jié)符號(hào)。
對(duì)隊(duì)列進(jìn)行初始化,將s放在其中。
(1)從隊(duì)列中取出一個(gè)符號(hào),設(shè)其為A,考察產(chǎn)生式,將形如A-a
的產(chǎn)生式右部符號(hào)
串中出現(xiàn)的非終結(jié)符都放入隊(duì)列中。如果非終結(jié)符已經(jīng)存在隊(duì)列中,
則不重復(fù)加入。(2)重復(fù)上述動(dòng)作,直至隊(duì)列中所有的非終結(jié)符都考察過,
并且沒有新的非終結(jié)符加入
隊(duì)列為止。
此時(shí)得到的隊(duì)列就是那些有用的非終結(jié)符。那些含有不在此隊(duì)列中出
現(xiàn)的非終結(jié)符的產(chǎn)生式就是包含無用符號(hào)的產(chǎn)生式,將其刪除即可。
3考慮下面程序
voidQ(int某){
inti=l;某=某+2;i=2;某=某+2;}
voidmain(){
inti;intB[3];B[1]=1;B[2]=2;i=l;Q(B[i]);}
試問:若參數(shù)傳遞方式分別采?、艂髦嫡{(diào)用,(2)引用調(diào)用,(3)復(fù)
制-恢復(fù)調(diào)用,(4)傳名調(diào)用時(shí)一,程序執(zhí)行后輸出B[l]和B[2]的值分別是
什么?請(qǐng)簡要寫出計(jì)算過程。
答:
(1)采用傳值調(diào)用時(shí),將實(shí)在參數(shù)的值傳遞給形式參數(shù),而后在函數(shù)
調(diào)用過程中,操作
的是形式參數(shù),形式參數(shù)的值發(fā)生改變,而且這些改變不能重新傳遞
給實(shí)在參數(shù),所以得到的結(jié)果是=B[2]=2(2)采用應(yīng)用調(diào)用,將實(shí)
在參數(shù)的地址傳遞給形式參數(shù),此時(shí)對(duì)形式參數(shù)的操作就相當(dāng)
于對(duì)其指向的地址單元進(jìn)行操作,其操作影響了實(shí)在參數(shù),所以得到的結(jié)
果是B[2]=2
(3)采用復(fù)制-恢復(fù)調(diào)用,首先將實(shí)在參數(shù)的值傳遞給形式參數(shù),此時(shí),
某=1,y=2,進(jìn)
行函數(shù)調(diào)用后,得到,某=5,y=2,調(diào)用返回時(shí),將形式參數(shù)的值傳
遞到相應(yīng)的實(shí)在參數(shù)的地址中,即某的值傳遞到B[l]的地址中,所以得到
的結(jié)果是B[l]=5;B[2]=2(4)采用傳名調(diào)用,將B[i]當(dāng)成整個(gè)的一個(gè)整體,
替換函數(shù)調(diào)用中的某,得到:
i=l;
B[i]=B[i]+2;i=2;
B[i]=B[i]+2;
計(jì)算得到,B[1]=3,B[2]=4
(1)采用傳值調(diào)用時(shí),將實(shí)在參數(shù)的值傳遞給形式參數(shù),而后在函數(shù)
調(diào)用過程中,操作
的是形式參數(shù),形式參數(shù)的值發(fā)生改變,而且這些改變不能重新傳遞
給實(shí)在參數(shù),所以得到的結(jié)果是=B[2]=2(2)采用應(yīng)用調(diào)用,將實(shí)
在參數(shù)的地址傳遞給形式參數(shù),此時(shí)對(duì)形式參數(shù)的操作就相當(dāng)
于對(duì)其指向的地址單元進(jìn)行操作,其操作影響了實(shí)在參數(shù),所以得到的結(jié)
果是B[2]=2
(3)采用復(fù)制-恢復(fù)調(diào)用
溫馨提示
- 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ōu)化培訓(xùn)
- 2025年消費(fèi)者權(quán)益保護(hù)年報(bào)-
- 活動(dòng)策劃培訓(xùn)內(nèi)容
- 2024-2025學(xué)年江西省萍鄉(xiāng)市高一下學(xué)期期末考試歷史試題(解析版)
- 2026年電子商務(wù)運(yùn)營師考試題庫及答案詳解
- 2026年文化傳承與創(chuàng)新文化傳播專業(yè)考試題
- 2026年環(huán)境法律法規(guī)知識(shí)測(cè)試題
- 2026年工程項(xiàng)目成本控制與設(shè)計(jì)策略討論課題測(cè)試題
- 2026年物流專員貨物運(yùn)輸與倉儲(chǔ)管理效率測(cè)試
- 2026年生物醫(yī)藥類專業(yè)考研試題與答案詳解
- 別克英朗說明書
- 地下管線測(cè)繪課件
- 珍稀植物移栽方案
- 新人教版數(shù)學(xué)三年級(jí)下冊(cè)預(yù)習(xí)學(xué)案(全冊(cè))
- JJG 810-1993波長色散X射線熒光光譜儀
- GB/T 34336-2017納米孔氣凝膠復(fù)合絕熱制品
- GB/T 20077-2006一次性托盤
- GB/T 1335.3-2009服裝號(hào)型兒童
- GB/T 10046-2008銀釬料
- GA 801-2019機(jī)動(dòng)車查驗(yàn)工作規(guī)程
- 灌注樁后注漿工藝.-演示文稿課件
評(píng)論
0/150
提交評(píng)論