聊城大學(xué),計算機(jī)學(xué)院,編譯原理復(fù)習(xí)ppt_第1頁
聊城大學(xué),計算機(jī)學(xué)院,編譯原理復(fù)習(xí)ppt_第2頁
聊城大學(xué),計算機(jī)學(xué)院,編譯原理復(fù)習(xí)ppt_第3頁
聊城大學(xué),計算機(jī)學(xué)院,編譯原理復(fù)習(xí)ppt_第4頁
聊城大學(xué),計算機(jī)學(xué)院,編譯原理復(fù)習(xí)ppt_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2023/1/11編譯原理1計算機(jī)學(xué)院厚德和諧礪學(xué)創(chuàng)新編譯原理

CompilerPrinciples

任課教師:鄭麗萍

zhengliping80@163.comlcucomputer@163.com

密碼lcu1234562015-2016第2學(xué)期2023/1/11編譯原理21.2什么是編譯程序

高級語言程序不能被計算機(jī)硬件理解,它必須經(jīng)過一些步驟轉(zhuǎn)換成相應(yīng)的目標(biāo)機(jī)器指令。編譯程序程序設(shè)計語言機(jī)器語言

編譯過程同人工翻譯外文資料的過程類似。編譯程序是把用高級語言編寫的源程序翻譯為等價的目標(biāo)程序。2023/1/11編譯原理3源程序P計算機(jī)A目標(biāo)程序P’計算機(jī)B運行結(jié)果編譯程序C原始數(shù)據(jù)D運行程序編譯階段運行階段什么是編譯程序2023/1/11編譯原理4

什么是編譯程序編譯程序與運行系統(tǒng)合稱為編譯系統(tǒng)。解釋程序以源程序作為輸入,與編譯程序的區(qū)別是在解釋程序的執(zhí)行過程中不產(chǎn)生目標(biāo)程序,而是解釋執(zhí)行源程序本身。典型的編譯程序包含八個部分:詞法分析程序(掃描器)、語法分析程序(分析器)、語義分析程序、中間代碼生成程序、代碼優(yōu)化程序、目標(biāo)代碼生成程序、錯誤檢查和處理程序、各種信息表格的管理程序;2023/1/11編譯原理5編譯過程

詞法分析

語法分析

語義分析

中間代碼生成

代碼優(yōu)化

目標(biāo)代碼生成一、編譯過程2023/1/11編譯原理61詞法分析功能:對由字符構(gòu)成的源程序進(jìn)行掃描和分析,得到單詞序列。常以子程序出現(xiàn),每調(diào)用一次提交一個單詞符號(二元組形式)。任務(wù):識別單詞、刪除空白符號、回車及其他無實質(zhì)性符號、刪除注釋、進(jìn)行單詞符號合法性檢查。2023/1/11編譯原理72語法分析功能:

把源程序的單詞組成語法短語(表示成語法樹)。即判斷源程序是否為相應(yīng)程序設(shè)計語言中的一個合法程序。依據(jù):語言的語法規(guī)則,即描述程序結(jié)構(gòu)的規(guī)則。3語義分析功能:明確程序中所出現(xiàn)的一些量的屬性和意義,進(jìn)行相應(yīng)的語義審查,以保證源程序在語義上的正確性。上下文相關(guān)性類型匹配類型轉(zhuǎn)換2023/1/11編譯原理84中間代碼生成目的:便于處理,便于代碼優(yōu)化。源程序的中間表示。三元式、四元式、逆波蘭式、樹形結(jié)構(gòu)等特點:易產(chǎn)生、易翻譯成目標(biāo)程序。5代碼優(yōu)化目的:對代碼進(jìn)行改進(jìn),使之占用的空間少,運行速度快。代碼優(yōu)化首先在中間代碼進(jìn)行,由優(yōu)化的中間代碼得到較優(yōu)的目標(biāo)代碼。2023/1/11編譯原理96目標(biāo)代碼生成目標(biāo)代碼一般是可重定位的機(jī)器代碼或匯編語言代碼。為生成目標(biāo)代碼,對程序中使用的每個變量要指定存儲單元,并把每條中間代碼指令翻譯成完全相同任務(wù)的機(jī)器指令。7出錯處理

編譯程序在各個階段應(yīng)診斷和報告源程序中的錯誤,包括詞法錯誤,語法錯誤,語義錯誤。編譯程序應(yīng)報告出錯地點,并給出簡明準(zhǔn)確的提示信息。2023/1/11編譯原理10二、編譯程序結(jié)構(gòu)詞法分析器語法分析器語義分析器源程序中間代碼生成器代碼優(yōu)化器代碼生成器目標(biāo)程序出錯管理器符號表管理器

編譯程序結(jié)構(gòu)2023/1/11編譯原理11一、編譯階段的組合1分析到綜合源程序的分析目標(biāo)程序的綜合在實際的編譯器中,若干階段可以組合在一起,各階段之間的中間表示也無需顯式構(gòu)造。

編譯程序的組織2023/1/11編譯原理12

源程序中間代碼目標(biāo)代碼

僅依賴源程序僅依賴目標(biāo)計算機(jī)前端后端2前端和后端通常,所有的階段被分成前端和后端兩部分(分析階段和綜合階段)。2023/1/11編譯原理13二、遍(PASS)對輸入文件(源程序或其等價的中間形式)從頭到尾掃視,完成預(yù)定處理遍輸入文件輸出文件多遍掃描的優(yōu)點各遍掃描功能相對獨立,編譯程序結(jié)構(gòu)清晰對源程序及其內(nèi)部的多次掃視和加工,有利于進(jìn)行比較細(xì)致和充分的代碼優(yōu)化處理2023/1/11編譯原理14把前端組織成一遍掃描詞法分析語法分析語義分析和中間代碼生成源程序中間代碼

符號表管理

錯誤的診查處理2023/1/11編譯原理15符號表符號表是記錄標(biāo)識符的數(shù)據(jù)結(jié)構(gòu)。源程序中使用的標(biāo)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論