




下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、編譯方法結課作業姓名班級學號任課教師開設學期20 1 5-20 1 6 第一學期評定成績評定人評定日期2016年1月10日1.談談你對編譯程序工作過程的5個階段的理解。答:編譯程序正常工作五個過程的流程圖如下列圖所示。源程序目標程序階段一:詞法分析這個階段的目的就是按照從左到右的順序一個一個的將其讀入源程序,即識 別一個單詞,同時對其進行歸類。這個過程就類似于我們對漢語語法的分析,比 如,我們輸入這樣一句話:我是一名東北大學的學生。然后對其進行語法分析, 讀入“我”,可以識別這個單詞為漢語實詞中的代詞類,“我”就歸到名詞類;讀 入“是”,我們歸到漢語實詞中的動詞類;讀入“一”字,不能構成一個可
2、識別 的符號,緊接著讀入“一名”,歸為漢語實詞中的形容詞類;讀入“東”字,也 不能構成一個可識別的單詞,緊接著讀入“東北大學”,歸為漢語實詞中的名詞 類;讀入“的”,我們歸到漢語虛詞中的助詞類;讀入“學”字,同樣不能構成 一個可識別的單詞,緊接著讀入“學生”,歸為漢語實詞中的名詞類。而在計算機中,如果我們對如下所寫的某些代碼進行歸類: x:=x+l;beginy:=9;z:=y*x;end;歸類結果如下表所示:注意:(1) KTk, PTp-靜態表(系統設定);ITi, CTc-動態表(隨源程序變化);關鍵字表界符表符號表常數表階段二:語 法分析在上面進行詞法分析的基礎上,將單詞序列分解成各類
3、語法短語,如“程序”、 “語句”、“表達式”等等。比方通過上面的單詞“我” “是” “一名” “東北大學” “的”“學生”,可以構成多種形式的語句,我是一名東北大學的學生,我是東北 大學的一名學生,東北大學的一名學生是我等等,都符合主語謂語這樣的 語法。階段三:語義分析與中間代碼生成審查源程序是否有語義的錯誤,當不符合語言規范的時候,程序就會報錯。 例如上面的“我是一名東北大學的學生” “我是東北大學的一名學生” “東北大學 的一名學生是我”三個句子,顯然最后面的“東北大學的一名學生是我”就不符 合語義。接著在進行了語法和語義的分析工作之后,編譯程序將源程序變成了一 種內部表示形式,這種內部表
4、示形式叫做中間語言或中間代碼。我們可以理解為, 是生成一種介于源碼和機器語言的形式。階段四:代碼優化根據代碼優化是否涉及具體的計算機來劃分:.與機器無關的優化(在源代碼或中間代碼級上進行),又可分三種:(1)全局優化一針對整個源程序。(2)局部優化一除全局優化外皆屬此類。常值表達式節省(常數合并)如:a=4+3;b=a+l;4+3,a+1皆為常值表達式!那么可優化為a=7;b=8;又如a=5+3;.;a=x.; a=a+l;那么a+1不是常值表達式!公共子表達式節省(刪除多余運算)如:a=b*d+l;e=b*d-2;b*d 是公共表達式!那么可優化為 t=b*d; a=t+1; e=t-2;又
5、如:b=b*d+l; e=b*d-2;那么b*d不是公共表達式!刪除無用賦值如:a=b+c;x=d-e;y=b;a=e-h/5;其中 a=b+c 為無用賦值!那么可優化為 x=d-e; y=b; a=e-h/5;不變表達式外提(循環優化之一),即把循環不變運算,提到循環外。如:i=l; while(i 100) x=(k+a)/i;, , , ;i+;那么可優化為 i=l;t=k+a;while (i 100) x=t/i;. ;i+;消減運算強度(循環優化之二),即把強度大的運算換算成強度小的運算。如:i=l; while (i100 )t=4*i; b=af2;.; i+; 那么可優化為
6、i=l;t=0; while (i100)t=t+4; b=a*a;i+;(3)循環優化一對循環語句實施的優化。.與機器有關的優化(目標代碼級上的優化),包括:(1)寄存器分配的優化。(2)消除無用代碼。通過以上代碼優化劃分和具體方法的簡單了解,優化代碼這一階段主要是對 上一階段的中間代碼進行變換或者改造,目的是使生成的目標代碼更為便捷、高 效,以到達節省時間和空間的目的。階段五:目標代碼生成目標代碼生成是編譯程序工作過程的最后一個階段,其功能表示如下:其中:中間代碼一逆波蘭式,三元式,四元式,語義樹;目標代碼一機器語言,匯編語言,符號表一變量的語義詞典,本階段的目的通過目標代碼生成器把優化后
7、的中間代碼變換成目標代碼。目 前我了解的目標代碼有三種形式:能立即執行的機器語言代碼,其所有地址都要重定位。匯編語言代碼需要經過匯編程序匯編后,才能成為可執行的機器語言 代碼。待裝配的機器語言模塊,只有執行時,由連接裝入程序把它們和某些 運行程序連接起來,才能轉換成可執行的機器語言代碼。止匕外,因為這是編譯程序工作過程的最后階段,與硬件系統結構、指令系統 相關,同時還涉及到硬件系統功能部件運用、機器指令的選擇等等。本階段理應考慮到直接影響目標代碼運行速度的三個主要問題:一是如何生成較短的目標代 碼;二是如何充分利用計算機指令系統的特點,以提高目標代碼的質量;三是如 何充分利用計算機中的寄存器,減少目標代碼訪問存儲單元的次數。2.你覺得編譯程序中使用的關鍵技術都有哪些應用方向,請詳細說明。答:編譯方法不僅適用于編譯程序,也廣泛適用于其他系統軟件和應用軟件 的開發。從根本上看,編譯程序和其他應用程序一樣,都可以歸結為處理數據和 表格,故可將它當作一個大型的應用實例。通過本課程學習,到達提高應用程序 設計能力和解決實際問題能力的目的。如詞法分析中的字符串匹配技術可以應用于文本編輯程序、信息檢索、通訊 程序、模式識別中上下文無關文法和語法制導的翻譯可以用于分析表達式,寫打字程序,繪圖 程序等小系統。代碼優化技術更
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 花藝作品的市場定位技巧試題及答案
- 研究心得2024年項目管理專業人士資格考試試題及答案
- 2024年微生物檢驗師各科目試題及答案
- 2024年微生物安全監管問題試題及答案
- 項目管理數據信息試題及答案
- 2024年花藝師考試的臨場應變能力試題及答案
- 2025年投資組合管理試題及答案
- 2024年行政管理師考試經驗積累的試題及答案
- 2025年企業財務報告分析試題及答案
- 2025年國際金融理財師考試應對策略試題及答案
- 手衛生知識宣教培訓
- 智能定時開關插座設計與制作
- 醫院患者滿意度調查工作制度
- 18《井岡翠竹》公開課一等獎創新教學設計
- 《企業績效評價標準值(2023年版)》
- 江漢區2023-2024學年下學期期中八年級數學試卷(含答案)
- 2025屆高考地理二輪復習:常見的天氣系統 提升練習題(含答案解析)
- 《客至》課件 統編版高二語文選擇性必修下冊
- CNAS-CL02-A004:2018 醫學實驗室質量和能力認可準則在臨床免疫學檢驗領域的應用說明
- 大學生舊物回收創業計劃書
- 新蘇教版一年級數學下冊第四單元《認識20~99》全部教案(共3課時)
評論
0/150
提交評論