




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、編譯程序基本概念編譯程序的設計原理與實現(xiàn)編譯程序的設計原理與實現(xiàn)認識、理解認識、理解和和執(zhí)行執(zhí)行高級程序設計語言?高級程序設計語言?編譯程序基本概念自我介紹自我介紹 編譯程序基本概念教材與參考書教材與參考書l教材:教材: 胡倫駿等:胡倫駿等:編譯原理編譯原理(第(第2版),電子工版),電子工業(yè)出版社業(yè)出版社 。l參考書:參考書:美美 Alfred V.Aho, Ravi Sethi Jeffrey, D. Ullman著著. 李建中,姜守旭譯:李建中,姜守旭譯:編譯原理編譯原理,機械工業(yè)出,機械工業(yè)出版社,版社,2003-1。美美 Kenneth C.Louden著,馮博琴等譯:著,馮博琴等譯
2、:編譯編譯原理及實踐原理及實踐,機械工業(yè)出版社,機械工業(yè)出版社,2002-2。陳火旺等:陳火旺等:程序設計語言編譯原理程序設計語言編譯原理(第(第3版),版), 國防工業(yè)出版社,國防工業(yè)出版社,2003-2。編譯程序基本概念課程的學時分配課程的學時分配(4040學時)學時)課程內(nèi)容課程內(nèi)容 教學教學上機上機第第1章章 編譯程序基本概念編譯程序基本概念2第第2章章 形式語言基礎形式語言基礎4第第3章章 自動機基礎自動機基礎4第第4章章 詞法分析詞法分析24第第5章章 語法分析語法分析6第第6章章 中間代碼生成中間代碼生成64第第7章章 符號表組織符號表組織2第第8章章 優(yōu)化優(yōu)化2第第9章章 目標
3、代碼生成目標代碼生成4合計合計328編譯程序基本概念計算機系統(tǒng)計算機系統(tǒng)硬件硬件軟件軟件組成組成原理原理電子技術(shù)電子技術(shù)體系體系結(jié)構(gòu)結(jié)構(gòu)數(shù)字邏輯電路數(shù)字邏輯電路電路原理電路原理大學物理大學物理計算機網(wǎng)絡計算機網(wǎng)絡接口與通訊技術(shù)接口與通訊技術(shù)通訊概論通訊概論安全與保密安全與保密程序設程序設計語言計語言匯編語言匯編語言高級語言高級語言編譯原理編譯原理計算理論計算理論C、C、JAVA、PB、VB系統(tǒng)系統(tǒng)軟件軟件操作系統(tǒng)操作系統(tǒng)DOS、Windows 、UNIX數(shù)據(jù)庫數(shù)據(jù)庫Access、Sybase 、Oracle數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)人工智能人工智能應用應用軟件軟件開發(fā)開發(fā)軟件工程軟件工程算法設計與分析算
4、法設計與分析本課程在計算機系統(tǒng)中的地位本課程在計算機系統(tǒng)中的地位編譯程序基本概念 課程的名稱、地位和特點課程的名稱、地位和特點 課程名稱:課程名稱:編譯理論、編譯理論、編譯原理編譯原理、編譯結(jié)構(gòu)、編譯、編譯結(jié)構(gòu)、編譯技術(shù)和編譯方法等。技術(shù)和編譯方法等。 課程地位:課程地位:編譯程序(系統(tǒng))和操作系統(tǒng)一起構(gòu)成編譯程序(系統(tǒng))和操作系統(tǒng)一起構(gòu)成了計算機中兩大了計算機中兩大系統(tǒng)軟件系統(tǒng)軟件;一個是計算機資源的操;一個是計算機資源的操縱者;而另一個是計算機軟件資源的開拓者??v者;而另一個是計算機軟件資源的開拓者。 課程特點課程特點: : 知識性知識性 形式語言和自動機作為本課程的兩大理論基礎形式語言和
5、自動機作為本課程的兩大理論基礎并具有典型的應用技術(shù)并具有典型的應用技術(shù); ; 系統(tǒng)性系統(tǒng)性 從詞法、語法、語義直到目標生成,構(gòu)成了語從詞法、語法、語義直到目標生成,構(gòu)成了語言翻譯的完整體系言翻譯的完整體系; ; 趣味性趣味性 關(guān)于語言處理的一些經(jīng)典算法和實現(xiàn)技術(shù),可關(guān)于語言處理的一些經(jīng)典算法和實現(xiàn)技術(shù),可以享受獲取軟件設計方法的樂趣。以享受獲取軟件設計方法的樂趣。 應用性應用性 編譯技術(shù)可廣泛應用于文本編輯、排版系統(tǒng)、編譯技術(shù)可廣泛應用于文本編輯、排版系統(tǒ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)機制編譯程序?qū)崿F(xiàn)機制 1.4 1.4 編譯程序的生成方法編譯程序的生成方法 1.5 1.5 編譯過程實例分析編譯過程實例分析 編譯程序基本概念. .計算機中語言的翻譯程序體系計算機中語言的翻譯程序體系解 釋 程解 釋 程序序 圖圖1.1 計算機語言的層次體系計算機語言的層次體系高級語言高級語言1 1編譯程序編譯程序2 2反匯編程序反匯編程序匯編程序匯編程序 匯編語言匯編語言機器語言機器語言反編譯程序反編譯程序轉(zhuǎn)換程序轉(zhuǎn)換程序 高級語言高級語言2 2編譯程序編
7、譯程序1 1編譯程序基本概念1.1 什么是編譯程序?什么是編譯程序? 編譯程序編譯程序(compiler)是一種是一種翻譯程序翻譯程序,它,它特指把某種特指把某種高級程序設計語言高級程序設計語言翻譯成與之等價翻譯成與之等價的具體計算機上的的具體計算機上的低級程序設計語言低級程序設計語言。編譯程序的執(zhí)行過程編譯程序的執(zhí)行過程兩個階段:兩個階段: 源語言源語言編譯程序編譯程序目標語言目標語言數(shù)據(jù)數(shù)據(jù) 結(jié)果結(jié)果運行程運行程序序編譯階段編譯階段運行階段運行階段圖圖1.2 編譯程序的執(zhí)行過程編譯程序的執(zhí)行過程編譯程序基本概念 什么是什么是解釋程序解釋程序? ? 解釋程序解釋程序(interpreter)
8、也是一種也是一種翻譯程序翻譯程序,它它將源語言書寫的源程序作為輸入,將源語言書寫的源程序作為輸入,解釋一句后就解釋一句后就提交計算機執(zhí)行一句提交計算機執(zhí)行一句,并不形成目標程序。,并不形成目標程序。 編譯程序編譯程序與與解釋程序解釋程序的主要區(qū)別的主要區(qū)別: : 數(shù)據(jù)數(shù)據(jù) 結(jié)果結(jié)果解釋程序解釋程序 圖圖1.3 解釋程序的執(zhí)行過程解釋程序的執(zhí)行過程 源語句源語句編譯程序基本概念1.2 編譯程序邏輯結(jié)構(gòu)編譯程序邏輯結(jié)構(gòu)詞法詞法分析分析語法語法分析分析語義語義分析分析目標目標代碼代碼生成生成源源語語言言目目標標語語言言錯錯 誤誤 處處 理理 程程 序序符符 號號 表表 管管 理理 程程 序序圖圖1.
9、4 編譯程序總體結(jié)構(gòu)編譯程序總體結(jié)構(gòu)優(yōu)化優(yōu)化處理處理編譯程序的編譯程序的五個階段:五個階段:編譯程序基本概念 編譯程序執(zhí)行過程編譯程序執(zhí)行過程詞法詞法分析分析語法語法分析分析語義語義分析分析目標目標代碼代碼生成生成源源語語言言目目標標語語言言錯錯 誤誤 處處 理理 程程 序序符符 號號 表表 管管 理理 程程 序序 圖圖1.5 編譯程序執(zhí)行過程圖解編譯程序執(zhí)行過程圖解優(yōu)化優(yōu)化處理處理單詞串單詞串TOKEN語法樹語法樹語義樹語義樹優(yōu)化優(yōu)化語義樹語義樹前前 端端后后 端端編譯程序基本概念 編譯程序編譯程序與與外文翻譯外文翻譯的類比:的類比:I wish you success!編譯程序基本概念1.
10、3 編譯程序的實現(xiàn)機制編譯程序的實現(xiàn)機制編譯程序基本概念1.4 編譯程序的生成方法編譯程序的生成方法編譯程序的生成方法:編譯程序的生成方法: 利用已有的編譯器利用已有的編譯器 自編譯方式自編譯方式 移植方式:重寫編譯器代碼的后端移植方式:重寫編譯器代碼的后端自動生成編譯程序:自動生成編譯程序: 詞法分析程序生成器詞法分析程序生成器LEX 語法分析程序生成器語法分析程序生成器YACC 編譯程序生成器編譯程序生成器 輸入:詞法規(guī)則、語法規(guī)則和語義解釋輸入:詞法規(guī)則、語法規(guī)則和語義解釋三個語言:源語言、目標語言和實現(xiàn)語言。三個語言:源語言、目標語言和實現(xiàn)語言。編譯程序基本概念1.5 編譯過程實例分析
11、編譯過程實例分析例:例:C程序片段程序片段 :1. 詞法分析詞法分析:識別單詞并分類識別單詞并分類 int a,b; . . . b = a + 2 * 5;v 編譯過程如下:編譯過程如下: 關(guān)鍵字關(guān)鍵字 (k) - int(k) - int 標識符標識符 (i) - a(i) - a,b b 常常 數(shù)數(shù) (c) - 2(c) - 2,5 5 界界 符符 (p) - , ; = + (p) - , ; = + * 單詞單詞類碼類碼編譯程序基本概念 圖 1.6 賦值語句 b=a+2*5 的語法樹 例: b = a + 2 * 5 的分析過程如下所示: ( 生成的結(jié)果是一棵語法樹 ) = = b
12、b + + * * a25 2. 語法分析:語法分析:組詞成句及語法錯誤檢查組詞成句及語法錯誤檢查算術(shù)表達式的算術(shù)表達式的層次結(jié)構(gòu)層次結(jié)構(gòu)編譯程序基本概念3. 語義分析:語義分析:分析各種語法成分的分析各種語法成分的語義特征語義特征int a,b;. . .b=a+2*5;l 構(gòu)建構(gòu)建標識符標識符的語義辭典的語義辭典-符號表:符號表:l 構(gòu)造語句的語義樹構(gòu)造語句的語義樹-中間語言;中間語言; b 的值 a 的值 數(shù)據(jù)區(qū)數(shù)據(jù)區(qū) v i b v i a 地址種類 類型 名字符號表符號表= =b b+ +a a* *2 25 5(1) ( * 2 5 t1 )(2) ( + a t1 t2 )(3) ( = t2 _ b )或或編譯程序基本概念4. 優(yōu)化優(yōu)化:提高目標程序的質(zhì)量:提高目標程序的質(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等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 江西省贛州市六校2024-2025學年高三質(zhì)量監(jiān)測(二)物理試題含解析
- 四川三河職業(yè)學院《材料應用設計實訓(1)》2023-2024學年第二學期期末試卷
- 遼寧省大連市第七十六中學2025年初三模擬考試(一)化學試題文試卷含解析
- 江蘇省蘇州市工業(yè)園區(qū)重點達標名校2024-2025學年中考第二次模擬考試化學試題理試題含解析
- 山東省威海市文登市2024-2025學年數(shù)學三下期末檢測試題含解析
- 內(nèi)蒙古赤峰市2024-2025學年下學期高三化學試題第二次適應性測試試卷含解析
- 昆山登云科技職業(yè)學院《工筆人物創(chuàng)作與表現(xiàn)》2023-2024學年第一學期期末試卷
- 武漢生物工程學院《林業(yè)專業(yè)外語》2023-2024學年第二學期期末試卷
- 四川省南充市西充縣2025年四下數(shù)學期末綜合測試試題含解析
- 二零二五土地轉(zhuǎn)讓合同書范例
- 溫泉養(yǎng)老、養(yǎng)生及醫(yī)療保健項目可行性研究報告
- 信息安全與數(shù)據(jù)備份
- 濕法厭氧消化副產(chǎn)物資源化-深度研究
- 情感信息傳播模型-深度研究
- 外賣騎手交通安全培訓
- JC-T 1099-2023 硫鋁酸鈣改性硅酸鹽水泥
- 2025年中國華電集團公司招聘筆試參考題庫含答案解析
- 收費站特情處理培訓
- 教師資格考試小學科學面試試題及答案指導(2024年)
- 【MOOC】考古發(fā)現(xiàn)與中國文化-浙江大學 中國大學慕課MOOC答案
- 計量經(jīng)濟學導論:現(xiàn)代觀點(第七版)課件:有定性信息的多元回歸
評論
0/150
提交評論