14年復(fù)試匯總筆試編譯原理試卷2010_第1頁
14年復(fù)試匯總筆試編譯原理試卷2010_第2頁
14年復(fù)試匯總筆試編譯原理試卷2010_第3頁
14年復(fù)試匯總筆試編譯原理試卷2010_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡(jiǎn)介

科學(xué)技術(shù)大學(xué)2009-2010學(xué)年第二學(xué)期考試試卷(A) 0b3babab1a21(15分)從第2章的習(xí)題中找出一個(gè)正規(guī)式,0b3babab1a22(10分)下面是類型表達(dá)式的語法 typeinteger|boolean|array[num]oftype|recordfield_listend|typefield_listid:type|id:type;field_list不是你答案)中的非符field_list寫一個(gè)遞歸過程(若需要變換文法,則先變換文法4(10分)225(10分Java語言的編譯器通常把數(shù)組分配在堆上。Java數(shù)組一般不能靜態(tài)確定大小應(yīng)該不是將它分配在堆上的,因?yàn)樯蠄D6.12給出了一種將不能靜態(tài)確定大小的數(shù)組動(dòng)態(tài)地分配在活動(dòng)記錄棧上的方法。Java數(shù)組一般不能分配在活動(dòng)記錄棧上的是什么?6(5分)Crecorda數(shù)組的大小不一樣的結(jié)構(gòu)體,以適應(yīng)某些編程場(chǎng)合的需要。你認(rèn)為這樣的程序能夠通過C#ludetypedefstruct{doubler;intn;floata[];}record;main(){record*p=malloc(sizeof(record)+sizeof(float)*5);p->n=5;p->a[4]=100.0;…}GCC策略func(j,j),所生成的優(yōu)化代碼和下面中間的匯編代func(i)longi;long }||||%esp,|%esp,|$4,|$4,|subl$8,8(%ebp),|8(%ebp),||$1,|%edx,-|%eax,|movl%eax,-4(%ebp),||||||$4,||||8(5分)請(qǐng)按上圖12.4的方式給出第375頁中類Point的對(duì)象表示9(10分)Cchar*p=|charf()|char*p=|charf()|main()printf(“%s\n”,|f p[1]= f}|}運(yùn)行目標(biāo)程序所得到的結(jié)果如下(編譯器是GCC:(GNU) (Debian4.2.3-5)SegmentationfaultSegmentationfault兩個(gè)目標(biāo)程序運(yùn)行時(shí)的表現(xiàn)不同(GCC:(GNU)4.2.3(Debian4.2.3-5)。請(qǐng)回答它們運(yùn)行時(shí)的表現(xiàn)有何不同,并說明。intf(intg())return}main()}2009-20102121分處于兩個(gè)集合,因此集合{2,3}要分成兩個(gè)子集;基于同樣的道理,集合{0,1}DFA。2typeinteger|boolean|array[numoftype|recordfield_listend|typefield_listid:field_type|id:field_type;field_listfield_typeinteger|boolean|recordfield_listend|33.7提供的方式修改文法:field_listid:type[;field_list]voidfield_list()match(id);match(‘:’);type();if(lookahead==‘;’){match(‘;’);}}4、給非符type一個(gè)綜合屬性arr,若type含有數(shù)組類型則arr為真,否則為假type {type.arr=false;type {type.arr=false;type array[num]of {type.arr=true;type {type.arr=type1.arr;type recordfield_list {type.arr=false;field_listid: {if(type.arr)print(“error”);field_listid:type; {if(type.arr)print(“error”);mintarr{1,2,3,4}這樣的方式還是用像intarr[]=newint[4]這樣的方式創(chuàng)建數(shù)組,在m的執(zhí)行結(jié)束后該數(shù)組都還有可能被,因6malloc調(diào)用的那個(gè)語句只要賦值號(hào)的左邊是指針類型的表達(dá)式就可以了對(duì)于賦值p->a[4]=100.0,C編譯器不進(jìn)行下標(biāo)表達(dá)式是否越界的檢查,因此也不會(huì)報(bào)告錯(cuò)誤。7pushladdl$n,%esp一次將所有參數(shù)退棧(npushl來決定addl$n,%esp指令來退棧(優(yōu)點(diǎn)。eaxjj

Point9Cp在兩個(gè)文件中的類型不一致。由于左邊文件給出p的強(qiáng)符號(hào)定義,因此p的分配和初值以左邊文件為準(zhǔn)。該程序在只: fp[1]p(按字符指針類型的觀點(diǎn))的值,導(dǎo)致Segmentationfault。Segmentationfault。在高級(jí)全局優(yōu)化的情況下,可以知道函數(shù)freturn

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論