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

下載本文檔

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

文檔簡(jiǎn)介

編譯程序的設(shè)計(jì)原理與實(shí)現(xiàn)如何讓計(jì)算機(jī)認(rèn)識(shí)、理解和執(zhí)行高級(jí)程序設(shè)計(jì)語言?自我介紹課件:

compiler_principle@

password:2008happy網(wǎng)易網(wǎng)盤->我的文檔Email:

劉洪娟:liuhongjuan0125@163.com辦公室:

綜合樓303辦公電話:

83680831

教材與參考書教材:胡倫駿等:《編譯原理》(第2版),電子工業(yè)出版社。參考書:美AlfredV.Aho,RaviSethiJeffrey,D.Ullman著.李建中,姜守旭譯:《編譯原理》,機(jī)械工業(yè)出版社,2003-1。美KennethC.Louden著,馮博琴等譯:《編譯原理及實(shí)踐》,機(jī)械工業(yè)出版社,2002-2。陳火旺等:《程序設(shè)計(jì)語言編譯原理》(第3版),國(guó)防工業(yè)出版社,2003-2。課程的學(xué)時(shí)分配(40學(xué)時(shí))課程內(nèi)容教學(xué)上機(jī)第1章編譯程序基本概念2第2章形式語言基礎(chǔ)4第3章自動(dòng)機(jī)基礎(chǔ)4第4章詞法分析24第5章語法分析6第6章中間代碼生成64第7章符號(hào)表組織2第8章優(yōu)化2第9章目標(biāo)代碼生成4合計(jì)328計(jì)算機(jī)系統(tǒng)硬件軟件組成原理電子技術(shù)體系結(jié)構(gòu)數(shù)字邏輯電路電路原理大學(xué)物理計(jì)算機(jī)網(wǎng)絡(luò)接口與通訊技術(shù)通訊概論安全與保密程序設(shè)計(jì)語言匯編語言高級(jí)語言編譯原理計(jì)算理論C、C++、JAVA、PB、VB…系統(tǒng)軟件操作系統(tǒng)DOS、Windows、UNIX…數(shù)據(jù)庫Access、Sybase、Oracle…數(shù)據(jù)結(jié)構(gòu)人工智能應(yīng)用軟件開發(fā)軟件工程算法設(shè)計(jì)與分析本課程在計(jì)算機(jī)系統(tǒng)中的地位

課程的名稱、地位和特點(diǎn)課程名稱:編譯理論、編譯原理、編譯結(jié)構(gòu)、編譯技術(shù)和編譯方法等。課程地位:編譯程序(系統(tǒng))和操作系統(tǒng)一起構(gòu)成了計(jì)算機(jī)中兩大系統(tǒng)軟件;一個(gè)是計(jì)算機(jī)資源的操縱者;而另一個(gè)是計(jì)算機(jī)軟件資源的開拓者。課程特點(diǎn):

知識(shí)性—形式語言和自動(dòng)機(jī)作為本課程的兩大理論基礎(chǔ)具有典型的應(yīng)用技術(shù);

系統(tǒng)性—從詞法、語法、語義直到目標(biāo)生成,構(gòu)成了語言翻譯的完整體系;

趣味性—關(guān)于語言處理的一些經(jīng)典算法和實(shí)現(xiàn)技術(shù),可以享受獲取軟件設(shè)計(jì)方法的樂趣。

應(yīng)用性—編譯技術(shù)可廣泛應(yīng)用于文本編輯、排版系統(tǒng)、模式識(shí)別以及機(jī)器翻譯等各個(gè)領(lǐng)域。第1章編譯程序基本概念內(nèi)容提要

1.1什么是編譯程序?1.2編譯程序邏輯結(jié)構(gòu)1.3編譯程序?qū)崿F(xiàn)機(jī)制1.4編譯程序的生成方法1.5編譯過程實(shí)例分析Ⅲ.Ⅱ.Ⅰ.計(jì)算機(jī)中語言的翻譯程序體系解釋程序

圖1.1計(jì)算機(jī)語言的層次體系高級(jí)語言1編譯程序2反匯編程序匯編程序

匯編語言機(jī)器語言反編譯程序轉(zhuǎn)換程序

高級(jí)語言2編譯程序11.1什么是編譯程序?

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

解釋程序(interpreter)也是一種翻譯程序,它將源語言書寫的源程序作為輸入,解釋一句后就提交計(jì)算機(jī)執(zhí)行一句,并不形成目標(biāo)程序。

編譯程序與解釋程序的主要區(qū)別:數(shù)據(jù)結(jié)果解釋程序圖1.3解釋程序的執(zhí)行過程源語句(1)前者有目標(biāo)程序而后者無目標(biāo)程序;(2)前者運(yùn)行效率高而后者便于人機(jī)對(duì)話。1.2編譯程序邏輯結(jié)構(gòu)詞法分析語法分析語義分析目標(biāo)代碼生成源語言目標(biāo)語言錯(cuò)誤處理程序符號(hào)表管理程序圖1.4編譯程序總體結(jié)構(gòu)優(yōu)化處理編譯程序的五個(gè)階段:※編譯程序執(zhí)行過程詞法分析語法分析語義分析目標(biāo)代碼生成源語言目標(biāo)語言錯(cuò)誤處理程序符號(hào)表管理程序

圖1.5

編譯程序執(zhí)行過程圖解優(yōu)化處理單詞串TOKEN語法樹語義樹優(yōu)化語義樹前端后端※編譯程序與外文翻譯的類比:

詞法分析--識(shí)別單詞,確認(rèn)詞類;

語法分析--識(shí)別短語和句型的

語法屬性;

語義分析

--確認(rèn)單詞、短語和句型的

語義特征;

代碼優(yōu)化--修辭、文本編輯;

代碼生成--生成譯文。Iwishyousuccess!1.3編譯程序的實(shí)現(xiàn)機(jī)制遍:編譯程序?qū)υ闯绦蚧虻葍r(jià)程序從頭至尾掃描的次數(shù)。

根據(jù)語言和環(huán)境的不同,編譯程序?qū)崿F(xiàn)時(shí)是把圖1.4中的各階段劃分成若干遍;典型的情況是兩遍的編譯程序:第一遍:詞法分析、語法分析和語義分析;第二遍:中間代碼優(yōu)化和目標(biāo)代碼生成。每遍中的各階段的工作是穿插進(jìn)行的,例如:使語法分析器處于核心位置。當(dāng)語法分析需要下一個(gè)單詞時(shí),就調(diào)用詞法分析器,識(shí)別一個(gè)單詞;一旦識(shí)別出一個(gè)語法單位,就調(diào)用語義分析器,完成語義分析并產(chǎn)生中間代碼。1.4編譯程序的生成方法編譯程序的生成方法:

利用已有的編譯器自編譯方式移植方式:重寫編譯器代碼的后端自動(dòng)生成編譯程序:詞法分析程序生成器LEX

語法分析程序生成器YACC

編譯程序生成器

輸入:詞法規(guī)則、語法規(guī)則和語義解釋涉及的三個(gè)語言:源語言、目標(biāo)語言和實(shí)現(xiàn)語言。1.5編譯過程實(shí)例分析例:C程序片段:1.

詞法分析:識(shí)別單詞并分類

inta,b;

...b=a+2*5;

編譯過程如下:⑴關(guān)鍵字(k)--int⑵標(biāo)識(shí)符(i)--a,b⑶常數(shù)(c)--2,5⑷界符(p)--,;=+*

單詞類碼圖1.6賦值語句b=a+2*5的語法樹例:b=a+2*5的分析過程如下所示:(生成的結(jié)果是一棵語法樹

)

<變量>

=<表達(dá)式><賦值語句>b

<項(xiàng)>+<項(xiàng)>

<變量><因式>*<因式>

<常數(shù)><常數(shù)>a25<因式>2.語法分析:組詞成句及語法錯(cuò)誤檢查算術(shù)表達(dá)式的層次結(jié)構(gòu)ⅠⅡⅢ3.語義分析:分析各種語法成分的語義特征inta,b;...b=a+2*5;構(gòu)建標(biāo)識(shí)符的語義辭典---符號(hào)表:構(gòu)造語句的語義樹---中間語言;b的值a的值

數(shù)據(jù)區(qū)

v

i

b

v

i

a

地址種類

類型

名字符號(hào)表=b+a*25如:b=a+2*5(1)(*25t1)(2)(+at1t2)(3)(=t2_b)或4.優(yōu)化:提高目標(biāo)程序的質(zhì)量=b+a*25(1)(*25t1)(2)(+at1t2)(3)(=t2_b)經(jīng)常數(shù)合并,可分別獲得優(yōu)化后的中間代碼如下圖所示:(1)(+a10t2)(2)(=t2_b)例

溫馨提示

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