版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、中間代碼基本塊的劃分任務(wù)要求在理解代碼優(yōu)化原理的基礎(chǔ)上,實(shí)現(xiàn)將中間代碼序列劃分基本塊的程序1 理解編譯過程中代碼優(yōu)化的定義2 掌握各種代碼優(yōu)化的方法3 定義程序流圖中的基本塊4 明確程序流圖的形式及功能5 程序設(shè)計(jì)及調(diào)試一原理闡述1. 代碼優(yōu)化的定義:代碼優(yōu)化的實(shí)質(zhì)就是提高代碼質(zhì)量從而加快代碼執(zhí)行速度的一種技術(shù)。 根據(jù)代碼優(yōu)化是否涉及具體的計(jì)算機(jī),又將代碼優(yōu)化分為與機(jī)器有關(guān)的優(yōu)化(即窺孔優(yōu)化),一般在目標(biāo)代碼上進(jìn)行;與機(jī)器無關(guān)的優(yōu)化,常在中間代碼上進(jìn)行。又根據(jù)優(yōu)化范圍分成局部優(yōu)化、 循環(huán)優(yōu)化、全局優(yōu)化。2. 代碼優(yōu)化的方法5) 合并已知量6) 復(fù)寫傳播7) 刪除無用賦值1) 刪除公共子表達(dá)式2
2、) 代碼外提3) 強(qiáng)度削弱4) 刪除歸納變量3. 基本塊和劃分基本塊的定義和方法:定義: 基本塊就是代碼序列中一組順序執(zhí)行的語句序列,只有一個(gè)入口和一個(gè)出口。 而劃分基本塊的實(shí)質(zhì)就是定義入口和出口語句。劃分基本塊的方法:1) 定義入口語句四元式的第一個(gè)語句;由條件轉(zhuǎn)移語句或無條件轉(zhuǎn)移語句能轉(zhuǎn)到的語句;緊跟在條件轉(zhuǎn)移語句后面的語句。2) 定義出口語句 下一個(gè)入口語句的前導(dǎo)語句; 轉(zhuǎn)移語句(包括轉(zhuǎn)移語句本身); 停語句(包括停語句本身)。構(gòu)造基本塊,刪除不屬于任何基本塊的語句流程示意圖中間唐句,按四元式序列,給出如下程序流圖 read x ; read y ;(4) if c=0 goto L2
3、; x=y ; L1:c=c+1 ; y=c ; goto L1 ; L2: write y ;halt (以表本)三.部分代碼:入口條件1int i=0,j=-1,back_i=0,in_num=0,out_num=0;char g200;cout<<"請(qǐng)輸入要進(jìn)行基本塊劃分的四元式(按回車表示四元式輸入完畢):"<<endl;for(i=0;i<200;i+)gi='';ci尸';g口(局部),c(全局)清零gets(g);/輸入四元式for(i=0;i<200;i+)ci=gi;/ 將輸入的四元式備份到c口i
4、nin_num+尸1'/首句為入口語句,將語句序號(hào)放入in口-可編輯修改-入口條件 3for(i=0;*(g+i)!=''i+)/ 由條件轉(zhuǎn)移語句或無條件轉(zhuǎn)移語句能轉(zhuǎn)到的語句為入口語句if(*(g+i)=':')/ 找到轉(zhuǎn)移語句能轉(zhuǎn)到的語句back_i=i;/i 是指針, back_i 記錄當(dāng)前位置,用于搜索語句序號(hào)for (;*(g+back_i)!=')'back_i-)continue;inin_num+=*(g+back_i-1);/ 得到入口語句序號(hào),將其放入 in出口條件 1outout_num+=(char)(int)*(g
5、+back_i-1)-1);break;/ 入口語句的上一句是出口語句,將其序號(hào)放入 outcout<<""<<endl<<endl;cout<<" 判定輸出語句 /輸入語句過程(輸出語句 > 輸入語句) :"<<endl<<endl;for(;j!=0;j+)cout<<"sentence ("<<outout_num-1<<") -> ("<<inin_num-1<<&
6、quot;)"<<endl;-可編輯修改-for(i=0;*(g+i)!=''i+)語句if(*(g+i)='i'&&*(g+i+1)='f')back_i=i;for(;*(g+back_i)!='('back_i+)語句continue;inin_num+=*(g+back_i+1);出口條件for(i=0;*(g+i)!=''i+)if(*(g+i)='g'&&*(g+i+1)='o')back_i=i;for(;*(g+b
7、ack_i)!=')'back_i-)continue;/ 緊跟在條件語句后面的語句為入口/ 找到條件語句關(guān)鍵字if/ 找到條件語句的下一句,即入口/ 將入口語句序號(hào)放入 in2/ 轉(zhuǎn)移語句為出口語句/ 找到轉(zhuǎn)移語句的關(guān)鍵字goto/將語句序號(hào)放入outoutout_num+=*(g+back_i-1);inin_num+=(char)(int)*(g+back_i-1)+1);/其下一句是入口語句,將語句序號(hào)放入in口for(;j<1;j+)cout<<"sentence("<<outout_num-1<<&quo
8、t;)->-可編輯修改-("<<inin_num-1<<")"<<endl;for(;*(g+back_i)!='L'back_i+)/找到轉(zhuǎn)移語句能夠轉(zhuǎn)到的語句序continue;for(;*(c+ch)!=''ch+)for(;*(c+ch)!='L'ch+) continue; if(*(g+back_i+1)=*(c+ch+1)&&back_i!=ch)根據(jù)語句序號(hào)找到相應(yīng)的語句back_ch=ch;for(;*(c+back_ch)!=')&
9、#39;back_ch-)continue;cout<<"sentence("<<outout_num-1<<")->("<<*(c+back_ch-1)<<")"<<endl; break;/輸出轉(zhuǎn)移ch=0;)出口條件3for(i=0;*(g+i)!=''i+)continue;back_i=i;for(;*(g+back_i)!=')'back_i-)continue;outout_num+=*(g+back_i-1);
10、cout<<"cout<<"劃分好的代碼塊:"<<endl;停語句為出口語句,找到停語句/將語句序號(hào)放入out"<<endl<<endl;for(i=0;i<4;i+)cout<<"Block ”<<i+1<<" : ("<<ini<<") - ("<<outi<<")"<<endl;/輸出各基本塊內(nèi)的語句四.程序運(yùn)行結(jié)果1.運(yùn)行輸入的四元式:2.輸出結(jié)果:劃分好的基本代碼塊五.總結(jié)這次我主要負(fù)責(zé)中間代碼基本塊的劃分。有了上次詞法分析器的程序設(shè)計(jì)的經(jīng)驗(yàn),我以書中的實(shí)例為參考模型,進(jìn)行編程,這樣就避免了由空想帶來的不必要的麻煩。整個(gè)設(shè)計(jì)還是以C+ +中的模塊化設(shè)計(jì)為主。 特別是在語句類型判斷上, 在編寫代碼時(shí), 雖然只要遵守判斷規(guī)則, 但仍然遇上了不困難,為了能方便的分塊,使程序能更加簡便、易懂, 我還自行將語句按
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年UPS產(chǎn)品保修及售后服務(wù)條款2篇
- 2024年版加油服務(wù)全面承包協(xié)議模板版B版
- 2024-2030年中國實(shí)時(shí)數(shù)據(jù)庫行業(yè)發(fā)展模式規(guī)劃分析報(bào)告
- 2024-2030年中國城市配送行業(yè)發(fā)展模式規(guī)劃分析報(bào)告
- 2024年獨(dú)家版:新材料研發(fā)與技術(shù)轉(zhuǎn)讓合同
- 2024年物業(yè)管理與保養(yǎng)服務(wù)合同書版B版
- 2024年技術(shù)服務(wù)與維護(hù)合同
- 2024年挖掘機(jī)租賃期間的保險(xiǎn)責(zé)任合同
- 2025個(gè)人承包快遞運(yùn)輸合同
- 單位人力資源管理制度展示大全
- 《項(xiàng)目進(jìn)度管理研究文獻(xiàn)綜述》
- 信用風(fēng)險(xiǎn)加權(quán)資產(chǎn)計(jì)量與管理手冊課件
- 光伏項(xiàng)目試驗(yàn)報(bào)告
- 小學(xué)“雙減”作業(yè)設(shè)計(jì):小學(xué)數(shù)學(xué)四年級(jí)上冊作業(yè)設(shè)計(jì)案例
- 知識(shí)產(chǎn)權(quán)法(英文) Intellectual Property Right Law課件
- 綜合評(píng)分法評(píng)分表(建設(shè)工程)
- SBS卷材防水施工工藝
- 深化設(shè)計(jì)確認(rèn)記錄
- 小學(xué)生心理健康教育課件
- 熱力管道焊接技術(shù)交底記錄大全
- XX鎮(zhèn)2022年度農(nóng)產(chǎn)品綜合服務(wù)中心項(xiàng)目實(shí)施方案范本
評(píng)論
0/150
提交評(píng)論