2001編譯原理試卷

2001編譯原理試卷

ID:18471206

大小:293.08 KB

頁數(shù):35頁

時間:2018-09-18

2001編譯原理試卷_第1頁
2001編譯原理試卷_第2頁
2001編譯原理試卷_第3頁
2001編譯原理試卷_第4頁
2001編譯原理試卷_第5頁
資源描述:

《2001編譯原理試卷》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。

1、2001年編譯原理試題1.(10分)處于/*和*/之間的串構(gòu)成注解,注解中間沒有*/。畫出接受這種注解的DFA的狀態(tài)轉(zhuǎn)換圖。2.(10分)為語言L={ambn

2、0£m£2n}(即a的個數(shù)不超過b的個數(shù)的兩倍)寫一個LR(1)文法,不準(zhǔn)超過6個產(chǎn)生式。(若超過6個產(chǎn)生式,不給分。若所寫文法不是LR(1)文法,最多給5分。)3.(10分)構(gòu)造下面文法的LL(1)分析表。D?TLT?int

3、realL?idRR?,idR

4、e4.(15分)就下面文法S?(L)

5、aL?L,S

6、S·給出一個語法制導(dǎo)定義,它輸出配對括號的個數(shù)?!そo出一個翻譯方案

7、,它輸出每個a的嵌套深度。如句子(a,(a,a)),第一小題的輸出是2,第二小題的輸出是122。5.(10分)Pascal語言for語句的含義見教材第222頁習(xí)題7.13。請為該語句設(shè)計一種合理的中間代碼結(jié)構(gòu)。你可以按第215頁圖7.17的方式或者第219頁圖7.19的方式寫出你的設(shè)計,不需要寫產(chǎn)生中間代碼的語法制導(dǎo)定義。6.(5分)一個C語言程序如下:func(i1,i2,i3)longi1,i2,i3;{longj1,j2,j3;printf("Addressesofi1,i2,i3=%o,%o,%o",&i1,&i2,&i

8、3);printf("Addressesofj1,j2,j3=%o,%o,%o",&j1,&j2,&j3);}main(){longi1,i2,i3;func(i1,i2,i3);}該程序在某種機(jī)器的Linux上的運行結(jié)果如下:Addressesofi1,i2,i3=27777775460,27777775464,27777775470Addressesofj1,j2,j3=27777775444,27777775440,27777775434從上面的結(jié)果可以看出,func函數(shù)的3個形式參數(shù)的地址依次升高,而3個局部變量的地址依

9、次降低。試說明為什么會有這個區(qū)別。7.(15分)一個C語言程序及其在某種機(jī)器linux操作系統(tǒng)上的編譯結(jié)果如下。根據(jù)所生成的匯編程序來解釋程序中四個變量的作用域、生存期和置初值方式等方面的區(qū)別。staticlongaa=10;shortbb=20;func(){staticlongcc=30;shortdd=40;}.file"static.c".version"01.01"gcc2_compiled.:.data.align4.typeaa,@object.sizeaa,4aa:.long10.globlbb.align2.typ

10、ebb,@object.sizebb,2bb:.value20.align4.typecc.2,@object.sizecc.2,4cc.2:.long30.text.align4.globlfunc.typefunc,@functionfunc:pushl%ebpmovl%esp,%ebpsubl$4,%espmovw$40,-2(%ebp).L1:leaveret.Lfe1:.sizefunc,.Lfe1-func.ident"GCC:(GNU)egcs-2.91.6619990314/Linux(egcs-1.1.2relea

11、se)"8.(10分)C語言是一種類型語言,但它不是強(qiáng)類型語言,因為編譯時的類型檢查不能保證所接受的程序沒有運行時的類型錯誤。例如,編譯時的類型檢查一般不能保證運行時沒有數(shù)組越界。請你再舉一個這樣的例子說明C語言不是強(qiáng)類型語言。9.(10分)如果在A機(jī)器上我們有C語言編譯器CCA,也有它的源碼SA(用C語言寫成)。如何利用它通過盡量少的工作來得到B機(jī)器的C語言編譯器CCB。10.(5分)表達(dá)式(lx.(lyz.(x+y)+z)3)45和(lx.(lyz.(x+y)+z)35)4有同樣的結(jié)果。在抽象機(jī)FAM上,哪一個表達(dá)式對應(yīng)的目標(biāo)代

12、碼的執(zhí)行效率高?為什么?2001年編譯原理試題參考答案1.124start52othersothers/***/2.LR(1)文法LR(1)文法二義文法S?AB

13、aABbS?ABS?AASb

14、eA?aaAb

15、eA?aaAb

16、ab

17、eA?a

18、eB?Bb

19、eB?Bb

20、e3.intrealid,$DD?TLD?TLTT?intT?realLL?idRRR?,idRR?e4.S¢?Sprint(S.num)S?(L)S.num:=L.num+1S?aS.num:=0L?L1,SL.num:=L1.num+S.numL?SL.num:=S.n

21、umS¢?{S.depth:=0}SS?{L.depth:=S.depth+1}(L)S?a{print(S.depth)}L?{L1.depth:=L.depth}L1,{S.depth:=L.depth}SL?{S.depth:=

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。