編譯程序基本概念課件_第1頁(yè)
編譯程序基本概念課件_第2頁(yè)
編譯程序基本概念課件_第3頁(yè)
編譯程序基本概念課件_第4頁(yè)
編譯程序基本概念課件_第5頁(yè)
已閱讀5頁(yè),還剩15頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、編譯程序基本概念編譯程序的設(shè)計(jì)原理與實(shí)現(xiàn)編譯程序的設(shè)計(jì)原理與實(shí)現(xiàn)認(rèn)識(shí)、理解認(rèn)識(shí)、理解和和執(zhí)行執(zhí)行高級(jí)程序設(shè)計(jì)語(yǔ)言?高級(jí)程序設(shè)計(jì)語(yǔ)言?編譯程序基本概念自我介紹自我介紹 編譯程序基本概念教材與參考書教材與參考書l教材:教材: 胡倫駿等:胡倫駿等:編譯原理編譯原理(第(第2版),電子工版),電子工業(yè)出版社業(yè)出版社 。l參考書:參考書:美美 Alfred V.Aho, Ravi Sethi Jeffrey, D. Ullman著著. 李建中,姜守旭譯:李建中,姜守旭譯:編譯原理編譯原理,機(jī)械工業(yè)出,機(jī)械工業(yè)出版社,版社,2003-1。美美 Kenneth C.Louden著,馮博琴等譯:著,馮博琴等譯

2、:編譯編譯原理及實(shí)踐原理及實(shí)踐,機(jī)械工業(yè)出版社,機(jī)械工業(yè)出版社,2002-2。陳火旺等:陳火旺等:程序設(shè)計(jì)語(yǔ)言編譯原理程序設(shè)計(jì)語(yǔ)言編譯原理(第(第3版),版), 國(guó)防工業(yè)出版社,國(guó)防工業(yè)出版社,2003-2。編譯程序基本概念課程的學(xué)時(shí)分配課程的學(xué)時(shí)分配(4040學(xué)時(shí))學(xué)時(shí))課程內(nèi)容課程內(nèi)容 教學(xué)教學(xué)上機(jī)上機(jī)第第1章章 編譯程序基本概念編譯程序基本概念2第第2章章 形式語(yǔ)言基礎(chǔ)形式語(yǔ)言基礎(chǔ)4第第3章章 自動(dòng)機(jī)基礎(chǔ)自動(dòng)機(jī)基礎(chǔ)4第第4章章 詞法分析詞法分析24第第5章章 語(yǔ)法分析語(yǔ)法分析6第第6章章 中間代碼生成中間代碼生成64第第7章章 符號(hào)表組織符號(hào)表組織2第第8章章 優(yōu)化優(yōu)化2第第9章章 目標(biāo)

3、代碼生成目標(biāo)代碼生成4合計(jì)合計(jì)328編譯程序基本概念計(jì)算機(jī)系統(tǒng)計(jì)算機(jī)系統(tǒng)硬件硬件軟件軟件組成組成原理原理電子技術(shù)電子技術(shù)體系體系結(jié)構(gòu)結(jié)構(gòu)數(shù)字邏輯電路數(shù)字邏輯電路電路原理電路原理大學(xué)物理大學(xué)物理計(jì)算機(jī)網(wǎng)絡(luò)計(jì)算機(jī)網(wǎng)絡(luò)接口與通訊技術(shù)接口與通訊技術(shù)通訊概論通訊概論安全與保密安全與保密程序設(shè)程序設(shè)計(jì)語(yǔ)言計(jì)語(yǔ)言匯編語(yǔ)言匯編語(yǔ)言高級(jí)語(yǔ)言高級(jí)語(yǔ)言編譯原理編譯原理計(jì)算理論計(jì)算理論C、C、JAVA、PB、VB系統(tǒng)系統(tǒng)軟件軟件操作系統(tǒng)操作系統(tǒng)DOS、Windows 、UNIX數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)Access、Sybase 、Oracle數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)人工智能人工智能應(yīng)用應(yīng)用軟件軟件開發(fā)開發(fā)軟件工程軟件工程算法設(shè)計(jì)與分析算

4、法設(shè)計(jì)與分析本課程在計(jì)算機(jī)系統(tǒng)中的地位本課程在計(jì)算機(jī)系統(tǒng)中的地位編譯程序基本概念 課程的名稱、地位和特點(diǎn)課程的名稱、地位和特點(diǎn) 課程名稱:課程名稱:編譯理論、編譯理論、編譯原理編譯原理、編譯結(jié)構(gòu)、編譯、編譯結(jié)構(gòu)、編譯技術(shù)和編譯方法等。技術(shù)和編譯方法等。 課程地位:課程地位:編譯程序(系統(tǒng))和操作系統(tǒng)一起構(gòu)成編譯程序(系統(tǒng))和操作系統(tǒng)一起構(gòu)成了計(jì)算機(jī)中兩大了計(jì)算機(jī)中兩大系統(tǒng)軟件系統(tǒng)軟件;一個(gè)是計(jì)算機(jī)資源的操;一個(gè)是計(jì)算機(jī)資源的操縱者;而另一個(gè)是計(jì)算機(jī)軟件資源的開拓者??v者;而另一個(gè)是計(jì)算機(jī)軟件資源的開拓者。 課程特點(diǎn)課程特點(diǎn): : 知識(shí)性知識(shí)性 形式語(yǔ)言和自動(dòng)機(jī)作為本課程的兩大理論基礎(chǔ)形式語(yǔ)言和

5、自動(dòng)機(jī)作為本課程的兩大理論基礎(chǔ)并具有典型的應(yīng)用技術(shù)并具有典型的應(yīng)用技術(shù); ; 系統(tǒng)性系統(tǒng)性 從詞法、語(yǔ)法、語(yǔ)義直到目標(biāo)生成,構(gòu)成了語(yǔ)從詞法、語(yǔ)法、語(yǔ)義直到目標(biāo)生成,構(gòu)成了語(yǔ)言翻譯的完整體系言翻譯的完整體系; ; 趣味性趣味性 關(guān)于語(yǔ)言處理的一些經(jīng)典算法和實(shí)現(xiàn)技術(shù),可關(guān)于語(yǔ)言處理的一些經(jīng)典算法和實(shí)現(xiàn)技術(shù),可以享受獲取軟件設(shè)計(jì)方法的樂趣。以享受獲取軟件設(shè)計(jì)方法的樂趣。 應(yīng)用性應(yīng)用性 編譯技術(shù)可廣泛應(yīng)用于文本編輯、排版系統(tǒng)、編譯技術(shù)可廣泛應(yīng)用于文本編輯、排版系統(tǒng)、模式識(shí)別以及機(jī)器翻譯等各個(gè)領(lǐng)域。模式識(shí)別以及機(jī)器翻譯等各個(gè)領(lǐng)域。編譯程序基本概念第第1 1章章 編譯程序基本概念編譯程序基本概念內(nèi)容提要內(nèi)

6、容提要 1.1 1.1 什么是編譯程序什么是編譯程序? ? 1.2 1.2 編譯程序邏輯結(jié)構(gòu)編譯程序邏輯結(jié)構(gòu) 1.3 1.3 編譯程序?qū)崿F(xiàn)機(jī)制編譯程序?qū)崿F(xiàn)機(jī)制 1.4 1.4 編譯程序的生成方法編譯程序的生成方法 1.5 1.5 編譯過程實(shí)例分析編譯過程實(shí)例分析 編譯程序基本概念. .計(jì)算機(jī)中語(yǔ)言的翻譯程序體系計(jì)算機(jī)中語(yǔ)言的翻譯程序體系解 釋 程解 釋 程序序 圖圖1.1 計(jì)算機(jī)語(yǔ)言的層次體系計(jì)算機(jī)語(yǔ)言的層次體系高級(jí)語(yǔ)言高級(jí)語(yǔ)言1 1編譯程序編譯程序2 2反匯編程序反匯編程序匯編程序匯編程序 匯編語(yǔ)言匯編語(yǔ)言機(jī)器語(yǔ)言機(jī)器語(yǔ)言反編譯程序反編譯程序轉(zhuǎn)換程序轉(zhuǎn)換程序 高級(jí)語(yǔ)言高級(jí)語(yǔ)言2 2編譯程序編

7、譯程序1 1編譯程序基本概念1.1 什么是編譯程序?什么是編譯程序? 編譯程序編譯程序(compiler)是一種是一種翻譯程序翻譯程序,它,它特指把某種特指把某種高級(jí)程序設(shè)計(jì)語(yǔ)言高級(jí)程序設(shè)計(jì)語(yǔ)言翻譯成與之等價(jià)翻譯成與之等價(jià)的具體計(jì)算機(jī)上的的具體計(jì)算機(jī)上的低級(jí)程序設(shè)計(jì)語(yǔ)言低級(jí)程序設(shè)計(jì)語(yǔ)言。編譯程序的執(zhí)行過程編譯程序的執(zhí)行過程兩個(gè)階段:兩個(gè)階段: 源語(yǔ)言源語(yǔ)言編譯程序編譯程序目標(biāo)語(yǔ)言目標(biāo)語(yǔ)言數(shù)據(jù)數(shù)據(jù) 結(jié)果結(jié)果運(yùn)行程運(yùn)行程序序編譯階段編譯階段運(yùn)行階段運(yùn)行階段圖圖1.2 編譯程序的執(zhí)行過程編譯程序的執(zhí)行過程編譯程序基本概念 什么是什么是解釋程序解釋程序? ? 解釋程序解釋程序(interpreter)

8、也是一種也是一種翻譯程序翻譯程序,它它將源語(yǔ)言書寫的源程序作為輸入,將源語(yǔ)言書寫的源程序作為輸入,解釋一句后就解釋一句后就提交計(jì)算機(jī)執(zhí)行一句提交計(jì)算機(jī)執(zhí)行一句,并不形成目標(biāo)程序。,并不形成目標(biāo)程序。 編譯程序編譯程序與與解釋程序解釋程序的主要區(qū)別的主要區(qū)別: : 數(shù)據(jù)數(shù)據(jù) 結(jié)果結(jié)果解釋程序解釋程序 圖圖1.3 解釋程序的執(zhí)行過程解釋程序的執(zhí)行過程 源語(yǔ)句源語(yǔ)句編譯程序基本概念1.2 編譯程序邏輯結(jié)構(gòu)編譯程序邏輯結(jié)構(gòu)詞法詞法分析分析語(yǔ)法語(yǔ)法分析分析語(yǔ)義語(yǔ)義分析分析目標(biāo)目標(biāo)代碼代碼生成生成源源語(yǔ)語(yǔ)言言目目標(biāo)標(biāo)語(yǔ)語(yǔ)言言錯(cuò)錯(cuò) 誤誤 處處 理理 程程 序序符符 號(hào)號(hào) 表表 管管 理理 程程 序序圖圖1.

9、4 編譯程序總體結(jié)構(gòu)編譯程序總體結(jié)構(gòu)優(yōu)化優(yōu)化處理處理編譯程序的編譯程序的五個(gè)階段:五個(gè)階段:編譯程序基本概念 編譯程序執(zhí)行過程編譯程序執(zhí)行過程詞法詞法分析分析語(yǔ)法語(yǔ)法分析分析語(yǔ)義語(yǔ)義分析分析目標(biāo)目標(biāo)代碼代碼生成生成源源語(yǔ)語(yǔ)言言目目標(biāo)標(biāo)語(yǔ)語(yǔ)言言錯(cuò)錯(cuò) 誤誤 處處 理理 程程 序序符符 號(hào)號(hào) 表表 管管 理理 程程 序序 圖圖1.5 編譯程序執(zhí)行過程圖解編譯程序執(zhí)行過程圖解優(yōu)化優(yōu)化處理處理單詞串單詞串TOKEN語(yǔ)法樹語(yǔ)法樹語(yǔ)義樹語(yǔ)義樹優(yōu)化優(yōu)化語(yǔ)義樹語(yǔ)義樹前前 端端后后 端端編譯程序基本概念 編譯程序編譯程序與與外文翻譯外文翻譯的類比:的類比:I wish you success!編譯程序基本概念1.

10、3 編譯程序的實(shí)現(xiàn)機(jī)制編譯程序的實(shí)現(xiàn)機(jī)制編譯程序基本概念1.4 編譯程序的生成方法編譯程序的生成方法編譯程序的生成方法:編譯程序的生成方法: 利用已有的編譯器利用已有的編譯器 自編譯方式自編譯方式 移植方式:重寫編譯器代碼的后端移植方式:重寫編譯器代碼的后端自動(dòng)生成編譯程序:自動(dòng)生成編譯程序: 詞法分析程序生成器詞法分析程序生成器LEX 語(yǔ)法分析程序生成器語(yǔ)法分析程序生成器YACC 編譯程序生成器編譯程序生成器 輸入:詞法規(guī)則、語(yǔ)法規(guī)則和語(yǔ)義解釋輸入:詞法規(guī)則、語(yǔ)法規(guī)則和語(yǔ)義解釋三個(gè)語(yǔ)言:源語(yǔ)言、目標(biāo)語(yǔ)言和實(shí)現(xiàn)語(yǔ)言。三個(gè)語(yǔ)言:源語(yǔ)言、目標(biāo)語(yǔ)言和實(shí)現(xiàn)語(yǔ)言。編譯程序基本概念1.5 編譯過程實(shí)例分析

11、編譯過程實(shí)例分析例:例:C程序片段程序片段 :1. 詞法分析詞法分析:識(shí)別單詞并分類識(shí)別單詞并分類 int a,b; . . . b = a + 2 * 5;v 編譯過程如下:編譯過程如下: 關(guān)鍵字關(guān)鍵字 (k) - int(k) - int 標(biāo)識(shí)符標(biāo)識(shí)符 (i) - a(i) - a,b b 常常 數(shù)數(shù) (c) - 2(c) - 2,5 5 界界 符符 (p) - , ; = + (p) - , ; = + * 單詞單詞類碼類碼編譯程序基本概念 圖 1.6 賦值語(yǔ)句 b=a+2*5 的語(yǔ)法樹 例: b = a + 2 * 5 的分析過程如下所示: ( 生成的結(jié)果是一棵語(yǔ)法樹 ) = = b

12、b + + * * a25 2. 語(yǔ)法分析:語(yǔ)法分析:組詞成句及語(yǔ)法錯(cuò)誤檢查組詞成句及語(yǔ)法錯(cuò)誤檢查算術(shù)表達(dá)式的算術(shù)表達(dá)式的層次結(jié)構(gòu)層次結(jié)構(gòu)編譯程序基本概念3. 語(yǔ)義分析:語(yǔ)義分析:分析各種語(yǔ)法成分的分析各種語(yǔ)法成分的語(yǔ)義特征語(yǔ)義特征int a,b;. . .b=a+2*5;l 構(gòu)建構(gòu)建標(biāo)識(shí)符標(biāo)識(shí)符的語(yǔ)義辭典的語(yǔ)義辭典-符號(hào)表:符號(hào)表:l 構(gòu)造語(yǔ)句的語(yǔ)義樹構(gòu)造語(yǔ)句的語(yǔ)義樹-中間語(yǔ)言;中間語(yǔ)言; b 的值 a 的值 數(shù)據(jù)區(qū)數(shù)據(jù)區(qū) v i b v i a 地址種類 類型 名字符號(hào)表符號(hào)表= =b b+ +a a* *2 25 5(1) ( * 2 5 t1 )(2) ( + a t1 t2 )(3) ( = t2 _ b )或或編譯程序基本概念4. 優(yōu)化優(yōu)化:提高目標(biāo)程序的質(zhì)量:提高目標(biāo)程序的質(zhì)量= =b b+ +a a* *2 25 5(1) ( * 2 5 t1 )(2) ( + a t1 t2 )(3) ( = t2 _ b )經(jīng)經(jīng)常數(shù)合并常數(shù)合并,可分別獲得優(yōu)化后的中間代碼如下圖所示:,可分別獲得優(yōu)化后的中間

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論