編譯程序構(gòu)造原理和實(shí)現(xiàn)技術(shù)_第1頁(yè)
編譯程序構(gòu)造原理和實(shí)現(xiàn)技術(shù)_第2頁(yè)
編譯程序構(gòu)造原理和實(shí)現(xiàn)技術(shù)_第3頁(yè)
編譯程序構(gòu)造原理和實(shí)現(xiàn)技術(shù)_第4頁(yè)
編譯程序構(gòu)造原理和實(shí)現(xiàn)技術(shù)_第5頁(yè)
已閱讀5頁(yè),還剩10頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、編譯程序構(gòu)造原理和實(shí)現(xiàn)技術(shù) 授課教師:呂江花1第一章 編譯程序概述主要內(nèi)容: 幾個(gè)基本概念 編譯器的工作過(guò)程概述 編譯器各個(gè)階段的功能描述 編譯程序的實(shí)現(xiàn)途徑2基本概念機(jī)器語(yǔ)言:能夠被計(jì)算機(jī)的硬件系統(tǒng)直 接執(zhí)行的指令程序。 匯編語(yǔ)言:將硬件指令用一些助記符表 示。如ADD表示加法操作, SUB表示減法操作等等 高級(jí)語(yǔ)言:使用便于理解的自然語(yǔ)言。 3語(yǔ)言處理程序解釋程序(器):接受所輸入的用程序 語(yǔ)言(源語(yǔ)言)編寫(xiě)的程序(源程 序),然后直接解釋執(zhí)行源程序。 相當(dāng)于源程序的抽象執(zhí)行機(jī),是語(yǔ) 言的實(shí)現(xiàn)系統(tǒng)。 高級(jí)語(yǔ)言源程序 計(jì)算結(jié)果 數(shù)據(jù) 解釋程序 (器)4語(yǔ)言處理程序翻譯程序(器):接受某種語(yǔ)言

2、的源語(yǔ) 言程序后,將它改造成另一種邏輯 上等價(jià)的目標(biāo)語(yǔ)言程序。 5翻譯程序匯編程序:源語(yǔ)言為匯編語(yǔ)言,目標(biāo)語(yǔ)言為機(jī)器語(yǔ)言的翻譯程序。編譯程序(器):源語(yǔ)言為高級(jí)語(yǔ)言,目標(biāo)語(yǔ)言是低級(jí)語(yǔ)言(匯編或機(jī)器語(yǔ)言)的翻譯程序。 高級(jí)語(yǔ)言程序(源程序)低級(jí)語(yǔ)言程序(目標(biāo)程序) 編譯程序 (器)6需預(yù)處理的源程序預(yù)處理器源程序編譯程序目標(biāo)匯編程序匯編程序可重定位的目標(biāo)代碼連接/裝配程序絕對(duì)目標(biāo)代碼高級(jí)語(yǔ)言程序到可執(zhí)行代碼的轉(zhuǎn)換過(guò)程7解釋器和編譯器特點(diǎn) 概念上的不同 基于解釋執(zhí)行的程序可以動(dòng)態(tài)修改自身, 而基于編譯執(zhí)行的程序則需要?jiǎng)討B(tài)編譯技 術(shù),難度較大。 基于解釋方式有利于人機(jī)交互。 執(zhí)行速度。解釋器執(zhí)行速度

3、要慢。 空間開(kāi)銷(xiāo)。 解釋器需要保存的信息較多, 空間開(kāi)銷(xiāo)大 利用解釋器可自動(dòng)生成編譯器二者實(shí)現(xiàn)技術(shù)相似。8 編譯器的功能結(jié)構(gòu)圖表 處 理 錯(cuò) 誤 處 理 目標(biāo)代碼生成中間代碼優(yōu)化中間代碼生成語(yǔ)義分析語(yǔ)法分析詞法分析目標(biāo)程序源程序9詞法分析(Lexical Analysis) 依循語(yǔ)言的詞法規(guī)則,掃描源程序的字符串,識(shí)別每一個(gè)單詞,并將其表示成所謂的機(jī)內(nèi)表示TOKEN形式。語(yǔ)法分析(Syntax Analysis) 依據(jù)語(yǔ)言的語(yǔ)法規(guī)則,將單詞的Token序 列分解成各類(lèi)語(yǔ)法短語(yǔ),確定整個(gè)輸入 串是否構(gòu)成一個(gè)語(yǔ)法上正確的程序。語(yǔ)義分析(Semantic Analysis) 審查源程序有無(wú)語(yǔ)義錯(cuò)誤,

4、為代碼生成 階段收集類(lèi)型信息。10中間代碼生成 (Intermediate Code Generate) 將源程序轉(zhuǎn)換成一種稱(chēng)為中間代碼的內(nèi) 部表示形式。中間代碼是一種簡(jiǎn)單的含義 明確的記號(hào)系統(tǒng)。中間代碼優(yōu)化(Code Optimization) 變換或改造中間代碼,生成的目標(biāo)代碼 更為高效,即節(jié)省時(shí)間和空間。目標(biāo)代碼生成(Code Generation) 中間代碼變換為特定機(jī)器上的絕對(duì)指令代碼或可重定位的指令代碼或匯編指令代碼。 11表格管理(Symbol-Table Management) 為了合理的管理表格(構(gòu)造、查找、更新),設(shè)立一些專(zhuān)門(mén)子程序稱(chēng)為表格管理程序負(fù)責(zé)管理表格。 錯(cuò)誤處理(Error Detection and Reporting) 各個(gè)階段還存在著錯(cuò)誤處理模塊,當(dāng)有錯(cuò)誤出現(xiàn)時(shí),由相應(yīng)的錯(cuò)誤處理模塊給出解決方案,使得編譯器能夠繼續(xù)進(jìn)行下去。12編譯程序的實(shí)現(xiàn)途徑預(yù)處理方法用于語(yǔ)言的擴(kuò)充。設(shè)已有L語(yǔ)言的編譯器,其擴(kuò)充語(yǔ)言L(fǎng)1的編譯器可通過(guò)語(yǔ)言轉(zhuǎn)換程序?qū)1程序轉(zhuǎn)換為L(zhǎng)程序,利用L的編譯器,從而實(shí)現(xiàn)L1的編譯器。移植法 同一語(yǔ)言的編譯器在不同機(jī)器間的移植。方法: a 目標(biāo)代碼的轉(zhuǎn)換 b 修改中間代碼到目標(biāo)代碼的轉(zhuǎn)換自展法 自我擴(kuò)展,自己編寫(xiě)自己的編譯器。工具法 利用編譯階段各個(gè)部分的自動(dòng)生成工具自動(dòng)生成。理論法 利用形式化描述理論,實(shí)現(xiàn)自動(dòng)化。13編譯程序的

溫馨提示

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

評(píng)論

0/150

提交評(píng)論