編譯原理習(xí)題_第1頁
編譯原理習(xí)題_第2頁
編譯原理習(xí)題_第3頁
編譯原理習(xí)題_第4頁
編譯原理習(xí)題_第5頁
已閱讀5頁,還剩48頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、編譯原理課題組編譯原理課題組編譯原理 2022年年3月月22日日 編 譯 原 理課程組高級語言匯編語言SOURCE PROGRAMAssemble PROGRAM?翻譯程序?翻譯程序?TRANSLATER 為什么要學(xué)習(xí)編譯原理n程序設(shè)計語言是計算機軟件專業(yè)的重要核心程序設(shè)計語言是計算機軟件專業(yè)的重要核心n學(xué)習(xí)編程的歷程:學(xué)習(xí)編程的歷程:C C語言匯編語言數(shù)據(jù)結(jié)構(gòu)語言匯編語言數(shù)據(jù)結(jié)構(gòu) 2022年年3月月22日日 編 譯 原 理課程組為什么要學(xué)習(xí)編譯原理n必修主干課程必修主干課程,操作系統(tǒng)和編譯系統(tǒng)構(gòu)成程序,操作系統(tǒng)和編譯系統(tǒng)構(gòu)成程序設(shè)計者與計算機之間的基本界面。設(shè)計者與計算機之間的基本界面。n通

2、過學(xué)習(xí)該課程,掌握編譯的基本理論、常用通過學(xué)習(xí)該課程,掌握編譯的基本理論、常用的編譯技術(shù),了解編譯過程及編譯系統(tǒng)結(jié)構(gòu)和的編譯技術(shù),了解編譯過程及編譯系統(tǒng)結(jié)構(gòu)和機理。能運用所學(xué)技術(shù)解決實際問題,能機理。能運用所學(xué)技術(shù)解決實際問題,能獨立獨立編寫一個小型編譯系統(tǒng)編寫一個小型編譯系統(tǒng)。n此外,通過學(xué)習(xí)編譯原理可以更好地理解程序此外,通過學(xué)習(xí)編譯原理可以更好地理解程序語言的內(nèi)部機制語言的內(nèi)部機制, ,從而更好地理解和運用程序從而更好地理解和運用程序設(shè)計語言。能運用編譯程序構(gòu)造的原理和技術(shù)設(shè)計語言。能運用編譯程序構(gòu)造的原理和技術(shù)完成完成相關(guān)軟件工具的設(shè)計和開發(fā)相關(guān)軟件工具的設(shè)計和開發(fā)工作。工作。 202

3、2年年3月月22日日 編 譯 原 理課程組為什么要學(xué)習(xí)編譯原理n計算機軟件學(xué)科計算機軟件學(xué)科理論與實踐相結(jié)合理論與實踐相結(jié)合的典范。的典范。n在學(xué)習(xí)過程中既要注重該領(lǐng)域在理論上取得在學(xué)習(xí)過程中既要注重該領(lǐng)域在理論上取得的完美結(jié)論,也要注重這些理論在實際中的的完美結(jié)論,也要注重這些理論在實際中的應(yīng)用。應(yīng)用。 2022年年3月月22日日 編 譯 原 理課程組先修課程n要求先學(xué)習(xí)以下課程要求先學(xué)習(xí)以下課程1.程序設(shè)計語言程序設(shè)計語言2.算法與數(shù)據(jù)結(jié)構(gòu)算法與數(shù)據(jù)結(jié)構(gòu):棧分配、堆分配、靜態(tài)分配等各種:棧分配、堆分配、靜態(tài)分配等各種存儲分配方式。線性表、二叉查找樹、哈希表等多種存儲分配方式。線性表、二叉查

4、找樹、哈希表等多種數(shù)據(jù)結(jié)構(gòu)。數(shù)據(jù)結(jié)構(gòu)。 3.離散數(shù)學(xué)離散數(shù)學(xué):集合論與數(shù)理邏輯是進一步學(xué)習(xí)形式語言:集合論與數(shù)理邏輯是進一步學(xué)習(xí)形式語言與自動機理論的數(shù)學(xué)基礎(chǔ)。與自動機理論的數(shù)學(xué)基礎(chǔ)。 n最好學(xué)習(xí)過或同時學(xué)習(xí)以下課程最好學(xué)習(xí)過或同時學(xué)習(xí)以下課程1.軟件工程軟件工程:掌握大型程序設(shè)計以及工程化的軟件生產(chǎn):掌握大型程序設(shè)計以及工程化的軟件生產(chǎn)方法。方法。2.形式語言與自動機形式語言與自動機:相當(dāng)于本課程中詞法分析與語法:相當(dāng)于本課程中詞法分析與語法分析的理論基礎(chǔ)。分析的理論基礎(chǔ)。 2022年年3月月22日日 編 譯 原 理課程組n陳火旺陳火旺 劉春林等,劉春林等,程序設(shè)計語言編譯原理程序設(shè)計語言編

5、譯原理,國防工業(yè)出版社國防工業(yè)出版社教材教材參考書參考書 李建中譯,李建中譯,編譯原理編譯原理(龍書)(龍書),機械工業(yè)出版社,機械工業(yè)出版社 李冬梅,施?;?,李冬梅,施?;?,編譯原理編譯原理,人民郵電出版社,人民郵電出版社 呂映芝,張素琴等,呂映芝,張素琴等,編譯原理編譯原理,清華大學(xué)出版社,清華大學(xué)出版社 2022年年3月月22日日 編 譯 原 理課程組 平時(平時(30%30%) 無故曠課:無故曠課: 一本教材,一本教材,認(rèn)真聽課認(rèn)真聽課:以講義為主,板書為:以講義為主,板書為輔輔-做適當(dāng)?shù)墓P記做適當(dāng)?shù)墓P記 認(rèn)真完成課堂和課后認(rèn)真完成課堂和課后作業(yè)作業(yè) 完成要求的完成要求的課外實驗課外實

6、驗內(nèi)容內(nèi)容 期末(期末(70%70%): :開卷筆試開卷筆試課程特點:理論性強,算法復(fù)雜課程特點:理論性強,算法復(fù)雜編譯原理課題組編譯原理課題組第一章第一章 引引 論論n本課程介紹程序設(shè)計語言編譯程序構(gòu)造的本課程介紹程序設(shè)計語言編譯程序構(gòu)造的基本原理和基本實現(xiàn)技術(shù)基本原理和基本實現(xiàn)技術(shù). .編譯原理課題組編譯原理課題組第一章第一章 引引 論論n編譯理論與方法編譯理論與方法計算機科學(xué)與技術(shù)中理論和實踐相結(jié)合的最好計算機科學(xué)與技術(shù)中理論和實踐相結(jié)合的最好典范典范 ACM 圖靈獎,授予在計算機技術(shù)領(lǐng)域作出突出圖靈獎,授予在計算機技術(shù)領(lǐng)域作出突出貢獻(xiàn)的科學(xué)家貢獻(xiàn)的科學(xué)家n程序設(shè)計語言、編譯理論與方法約

7、占程序設(shè)計語言、編譯理論與方法約占1/3編譯原理課題組編譯原理課題組源語言源語言程序程序目標(biāo)語目標(biāo)語言程序言程序翻譯翻譯程序程序翻譯翻譯一一. 什么是編譯程序什么是編譯程序q翻譯程序翻譯程序 把某一種語言程序把某一種語言程序( (稱為稱為源語言程序源語言程序) )等價地轉(zhuǎn)等價地轉(zhuǎn)換成另一種語言程序換成另一種語言程序( (稱為稱為目標(biāo)語言程序目標(biāo)語言程序) )的程序的程序編譯原理課題組編譯原理課題組高級語高級語言程序言程序機器語機器語言程序言程序結(jié)果結(jié)果編譯編譯程序程序翻譯翻譯運行運行一一. 什么是編譯程序什么是編譯程序q編譯程序編譯程序(compiler)(compiler) 把某一種把某一種

8、高級語言程序高級語言程序等價地轉(zhuǎn)換成另一種等價地轉(zhuǎn)換成另一種低級語低級語言程序言程序( (如匯編語言或機器語言程序如匯編語言或機器語言程序) )的程序的程序診斷編譯程序診斷編譯程序優(yōu)化編譯程序優(yōu)化編譯程序交叉編譯程序交叉編譯程序可變目標(biāo)編譯程序可變目標(biāo)編譯程序編譯原理課題組編譯原理課題組一一. 什么是編譯程序什么是編譯程序q解釋程序解釋程序 把源語言寫的源程序作為輸入,但不產(chǎn)生目標(biāo)程序,把源語言寫的源程序作為輸入,但不產(chǎn)生目標(biāo)程序,而是邊解釋邊執(zhí)行源程序本身而是邊解釋邊執(zhí)行源程序本身源程序源程序結(jié)果結(jié)果解釋解釋程序程序解釋執(zhí)行解釋執(zhí)行編譯原理課題組編譯原理課題組編譯程序編譯程序 vs. 解釋程

9、序解釋程序編譯解釋編譯原理課題組編譯原理課題組二二. . 編譯過程編譯過程n把英文翻譯為中文把英文翻譯為中文 識別出句子中的一個個單詞;識別出句子中的一個個單詞;分析句子的語法結(jié)構(gòu);分析句子的語法結(jié)構(gòu);根據(jù)句子的含義進行初步翻譯;根據(jù)句子的含義進行初步翻譯;對譯文進行修飾;對譯文進行修飾;寫出最后的譯文。寫出最后的譯文。 詞法分析詞法分析語法分析語法分析中間代碼中間代碼產(chǎn)生產(chǎn)生優(yōu)化優(yōu)化目標(biāo)代碼目標(biāo)代碼產(chǎn)生產(chǎn)生編譯原理課題組編譯原理課題組二二. . 編譯過程編譯過程n編譯程序的工作一般分為五個階段編譯程序的工作一般分為五個階段: :詞法分析詞法分析語法分析語法分析中間代碼產(chǎn)生中間代碼產(chǎn)生優(yōu)化優(yōu)化

10、目標(biāo)代碼產(chǎn)生目標(biāo)代碼產(chǎn)生編譯原理課題組編譯原理課題組1. 1. 詞法分析詞法分析n任務(wù)任務(wù): : 輸入源程序,對構(gòu)成源程序的字輸入源程序,對構(gòu)成源程序的字符串進行掃描和分解,識別出一個個單符串進行掃描和分解,識別出一個個單詞符號。詞符號。n依循的原則:構(gòu)詞規(guī)則依循的原則:構(gòu)詞規(guī)則n描述工具:有限自動機描述工具:有限自動機nFOR I := 1 TO 100 DOFOR I := 1 TO 100 DO 保留字保留字 標(biāo)識符標(biāo)識符 等符等符 整常數(shù)整常數(shù) 保留字保留字 整常數(shù)整常數(shù) 保留字保留字編譯原理課題組編譯原理課題組2. 2. 語法分析語法分析n任務(wù)任務(wù): :在詞法分析的基礎(chǔ)上,根據(jù)語言的

11、語在詞法分析的基礎(chǔ)上,根據(jù)語言的語法規(guī)則把單詞符號串分解成各類語法單位。法規(guī)則把單詞符號串分解成各類語法單位。n依循的原則:語法規(guī)則依循的原則:語法規(guī)則n描述工具:上下文無關(guān)文法描述工具:上下文無關(guān)文法nZ := X + 0.618 Z := X + 0.618 * * Y Y 算術(shù)表達(dá)式,賦值語句算術(shù)表達(dá)式,賦值語句編譯原理課題組編譯原理課題組3. 3. 中間代碼產(chǎn)生中間代碼產(chǎn)生n任務(wù)任務(wù): :對各類不同語法范疇按語言的語義對各類不同語法范疇按語言的語義進行初步翻譯。進行初步翻譯。n依循的原則:語義規(guī)則依循的原則:語義規(guī)則n中間代碼中間代碼: :三元式,四元式,樹形結(jié)構(gòu)等三元式,四元式,樹形

12、結(jié)構(gòu)等nZ:=X + 0.618 Z:=X + 0.618 * * Y Y 翻譯成四元式為翻譯成四元式為(1) (1) * * 0.618 Y T1 0.618 Y T1(2) + X T1 T2(2) + X T1 T2(3) := T2 _ Z(3) := T2 _ Z編譯原理課題組編譯原理課題組4. 4. 優(yōu)化優(yōu)化n任務(wù):對于前階段產(chǎn)生的中間代碼進行任務(wù):對于前階段產(chǎn)生的中間代碼進行加工變換,以期在最后階段產(chǎn)生更高效加工變換,以期在最后階段產(chǎn)生更高效的目標(biāo)代碼。的目標(biāo)代碼。n依循的原則:程序的等價變換規(guī)則依循的原則:程序的等價變換規(guī)則FOR K:=1 TO 100 DOFOR K:=1

13、TO 100 DO BEGIN BEGIN X:=I+1; X:=I+1; M := I + 10 M := I + 10 * * K; K; N := J + 10 N := J + 10 * * K; K; END END編譯原理課題組編譯原理課題組中間代碼(一)中間代碼(一)序號序號 OPROPR OPN1OPN1 OPN2 RESULT OPN2 RESULT 注釋注釋(1)(1) :=:=1 1 K K:=1 K K:=1(2)(2) jj100100 K K (10) if (100K) (10) if (100K) goto (10) goto (10)(3)(3) + +I I

14、 1 1 X X X:=I+1 X:=I+1(4)(4) * *1010 K K T1 T1 T1:=10 T1:=10* *K K(5)(5) + +I I T1 T1 M M M:=I+T1 M:=I+T1(6)(6) * *1010 K K T2 T2 T2:=10 T2:=10* *K K(7)(7) + +J J T2 T2 N N N:=J+T2 N:=J+T2(8)(8) + +K K 1 1 K K K:=K+1 K:=K+1(9)(9) j j (2) (2) goto (2) goto (2)(10)(10)400次加法次加法200次乘法次乘法編譯原理課題組編譯原理課題組轉(zhuǎn)

15、換后的等價代碼(二)轉(zhuǎn)換后的等價代碼(二)序號序號 OPROPR OPN1OPN1 OPN2OPN2 RESULT RESULT注釋注釋(1)(1) + +I I 1 1 X X X:=I+1 X:=I+1(2)(2) :=:=I I M M M:=I M:=I(3)(3) :=:=J J N N N:=J N:=J(4)(4) :=:=1 1 K K K:=1 K:=1(5)(5) jj100100 K K(10)(10) if (100K) if (100K) goto (10) goto (10)(6)(6) + +M M 10 10 M M M:=M+10 M:=M+10(7)(7)

16、+ +N N 10 10 N N N:=N+10 N:=N+10(8)(8) + +K K 1 1 K K K:=K+1 K:=K+1(9)(9) j j(5)(5) goto (5) goto (5)(10)(10)301次加法次加法編譯原理課題組編譯原理課題組5. 5. 目標(biāo)代碼產(chǎn)生目標(biāo)代碼產(chǎn)生n任務(wù)任務(wù): : 把中間代碼變換成特定機器上的目把中間代碼變換成特定機器上的目標(biāo)代碼。標(biāo)代碼。n依賴于硬件系統(tǒng)結(jié)構(gòu)和機器指令的含義依賴于硬件系統(tǒng)結(jié)構(gòu)和機器指令的含義n目標(biāo)代碼三種形式目標(biāo)代碼三種形式: :絕對指令代碼絕對指令代碼: : 可直接運行可直接運行 可重新定位指令代碼可重新定位指令代碼: :

17、 需要連接裝配需要連接裝配匯編指令代碼匯編指令代碼: : 需要進行匯編需要進行匯編編譯原理課題組編譯原理課題組模塊模塊Aa模塊模塊Bb模塊模塊Cc模塊模塊Aa模塊模塊Bb模塊模塊Cc模塊模塊Aa模塊模塊D模塊模塊Cc編譯原理課題組編譯原理課題組5. 5. 目標(biāo)代碼產(chǎn)生目標(biāo)代碼產(chǎn)生n例例: b=a+2 MOV a, R1ADD #2, R1MOV R1, b 0001 01 00 00000000 *0011 01 10 00000010 0100 01 00 00000100 * L=00001111 0001 01 00 000011110011 01 10 000000100100 01

18、00 00010011 編譯原理課題組編譯原理課題組三三. . 編譯程序結(jié)構(gòu)編譯程序結(jié)構(gòu)n編譯程序總框編譯程序總框編譯原理課題組編譯原理課題組四元式四元式單詞符號單詞符號語法單位語法單位四元式四元式目標(biāo)代碼目標(biāo)代碼詞法分析器詞法分析器語法分析器語法分析器語義分析與中間代碼語義分析與中間代碼生成器生成器優(yōu)化段優(yōu)化段源程序源程序表表格格管管理理出出錯錯處處理理目標(biāo)代碼生成器目標(biāo)代碼生成器編譯原理課題組編譯原理課題組2. 2. 表格和表格管理表格和表格管理n常見的表格常見的表格: :符號名表,常數(shù)表,標(biāo)號表,符號名表,常數(shù)表,標(biāo)號表,入口名表,過程引用表。入口名表,過程引用表。n格式格式: : 名字

19、信息編譯原理課題組編譯原理課題組例例: PASCAL: PASCAL程序段:程序段:PROCEDURE INCWAP(MPROCEDURE INCWAP(M,N:INTEGER);N:INTEGER);LABEL START;LABEL START;VARVAR K:INTEGER; K:INTEGER;BEGINBEGINSTART:START: K:=M+1; K:=M+1; M:=N+4; M:=N+4; N:=K; N:=K;END.END.編譯原理課題組編譯原理課題組PROCEDURE INCWAP(MPROCEDURE INCWAP(M,N:INTEGER);N:INTEGER);

20、LABEL START;LABEL START;VARVAR K:INTEGER; K:INTEGER;BEGINBEGINSTART:START: K:=M+1; K:=M+1; M:=N+4; M:=N+4; N:=K; N:=K;END.END.表 0.1 符號名表 SNTNAMEINFORMATIONM形式參數(shù),整型,值參數(shù)N形式參數(shù),整型,值參數(shù)K整型,變量編譯原理課題組編譯原理課題組表 0.2 常數(shù)表 CT值(VALUE)(1)1(2)4PROCEDURE INCWAP(MPROCEDURE INCWAP(M,N:INTEGER);N:INTEGER);LABEL START;LA

21、BEL START;VARVAR K:INTEGER; K:INTEGER;BEGINBEGINSTART:START: K:=M+1; K:=M+1; M:=N+4; M:=N+4; N:=K; N:=K;END.END.編譯原理課題組編譯原理課題組表 0.3 入口名表 ENTNAMEINFORMATION(1)INCWAP 二目子程序,入口四元式:1PROCEDURE INCWAP(MPROCEDURE INCWAP(M,N:INTEGER);N:INTEGER);LABEL START;LABEL START;VARVAR K:INTEGER; K:INTEGER;BEGINBEGINS

22、TART:START: K:=M+1; K:=M+1; M:=N+4; M:=N+4; N:=K; N:=K;END.END.編譯原理課題組編譯原理課題組 表 0.4 標(biāo)號表 LTNAME INFORMATION(1)START 四元式:(4)PROCEDURE INCWAP(MPROCEDURE INCWAP(M,N:INTEGER);N:INTEGER);LABEL START;LABEL START;VARVAR K:INTEGER; K:INTEGER;BEGINBEGINSTART:START: K:=M+1; K:=M+1; M:=N+4; M:=N+4; N:=K; N:=K;E

23、ND.END.編譯原理課題組編譯原理課題組表 0.1 符號名表 SNTNAMEINFORMATIONM形式參數(shù),整型,值參數(shù)N形式參數(shù),整型,值參數(shù)K整型,變量表 0.2 常數(shù)表 CT值(VALUE)(1)1(2)4表 0.3 入口名表 ENTNAMEINFORMATION(1)INCWAP 二目子程序,入口四元式:1 表 0.4 標(biāo)號表 LTNAME INFORMATION(1)START 四元式:(4)編譯原理課題組編譯原理課題組 表 0.5 四元式表 QTOPROPN1OPN2RESULT(1)link(2)parINCWAP1M(3)parINCWAP2N(4)+M1K(5)+N4M(

24、6):=KN(7) returnPROCEDURE INCWAP(MPROCEDURE INCWAP(M,N:INTEGER);N:INTEGER);LABEL START;LABEL START;VARVAR K:INTEGER; K:INTEGER;BEGINBEGINSTART:START: K:=M+1; K:=M+1; M:=N+4; M:=N+4; N:=K; N:=K;END.END.編譯原理課題組編譯原理課題組3. 3. 出錯處理出錯處理n出錯處理程序:出錯處理程序:發(fā)現(xiàn)發(fā)現(xiàn)源程序中的源程序中的錯誤,把錯誤,把有關(guān)錯誤信息報告給用戶有關(guān)錯誤信息報告給用戶語法錯誤語法錯誤語義錯誤

25、語義錯誤 編譯原理課題組編譯原理課題組4. 4. 遍遍(pass)(pass)n所謂所謂 遍遍 , 就是對源程序或源程序的中間就是對源程序或源程序的中間表示從頭到尾掃描一次。表示從頭到尾掃描一次。n階段與遍是不同的概念。一遍可以由若干階段與遍是不同的概念。一遍可以由若干段組成,一個階段也可以分若干遍來完成。段組成,一個階段也可以分若干遍來完成。編譯原理課題組編譯原理課題組5. 編譯前端與后端編譯前端與后端n編譯前端編譯前端:與源語言有關(guān),如詞法分析,語:與源語言有關(guān),如詞法分析,語法分析,語義分析與中間代碼產(chǎn)生,與機器法分析,語義分析與中間代碼產(chǎn)生,與機器無關(guān)的優(yōu)化無關(guān)的優(yōu)化n編譯后端編譯后端

26、:與目標(biāo)機有關(guān),與目標(biāo)機有關(guān)的:與目標(biāo)機有關(guān),與目標(biāo)機有關(guān)的優(yōu)化,目標(biāo)代碼產(chǎn)生優(yōu)化,目標(biāo)代碼產(chǎn)生優(yōu)點:減少對內(nèi)存容量的要求,程序邏輯結(jié)構(gòu)清優(yōu)點:減少對內(nèi)存容量的要求,程序邏輯結(jié)構(gòu)清晰晰; ; 優(yōu)化更充分,有利于移植。優(yōu)化更充分,有利于移植。不足不足: : 編譯程序運行的效率低編譯程序運行的效率低源語言源語言中間語言中間語言目標(biāo)語言目標(biāo)語言前端前端后端后端編譯原理課題組編譯原理課題組JAVA語言語言操作系統(tǒng)平臺操作系統(tǒng)平臺Java虛擬機虛擬機(解釋器解釋器)Java編譯器編譯器Java源程序源程序(.java)Java虛擬機代碼虛擬機代碼(.class)解釋執(zhí)行解釋執(zhí)行編譯原理課題組編譯原理課題

27、組四四. .編譯程序與程序設(shè)計環(huán)境編譯程序與程序設(shè)計環(huán)境 n程序設(shè)計環(huán)境程序設(shè)計環(huán)境 編輯程序編輯程序 編譯程序編譯程序連接程序連接程序 調(diào)試工具調(diào)試工具 n集成化的程序設(shè)計環(huán)境集成化的程序設(shè)計環(huán)境 編譯原理課題組編譯原理課題組.NET Framework與VS.NETOperating SystemCommon Language RuntimeADO.NET: Data and XMLASP.NET: Web Services & Web FormsWindowsFormsCommon Language SpecificationVisual Studio.NETVBC+C#JScr

28、ipt編譯原理課題組編譯原理課題組五五. .編譯程序生成編譯程序生成n以匯編語言和機器語言為工具以匯編語言和機器語言為工具優(yōu)點優(yōu)點: : 可以針對具體的機器,充分發(fā)揮計可以針對具體的機器,充分發(fā)揮計算機的系統(tǒng)功能。生成的程序效率高。算機的系統(tǒng)功能。生成的程序效率高。缺點缺點: : 程序難讀、難寫、易出錯、難維護、程序難讀、難寫、易出錯、難維護、生產(chǎn)的效率低。生產(chǎn)的效率低。編譯原理課題組編譯原理課題組五五. .編譯程序生成編譯程序生成n高級語言書寫高級語言書寫 S T I S 源程序 T 目標(biāo)程序 I 實現(xiàn)語言優(yōu)點優(yōu)點: : 程序易讀、易理解、容易維護、程序易讀、易理解、容易維護、生產(chǎn)的效率高。

29、生產(chǎn)的效率高。缺點缺點: : 難以充分發(fā)揮計算機的系統(tǒng)功能,難以充分發(fā)揮計算機的系統(tǒng)功能,生成的程序效率低。生成的程序效率低。編譯原理課題組編譯原理課題組五五. .編譯程序生成編譯程序生成n高級語言書寫高級語言書寫利用已有的某種語言的編譯程序?qū)崿F(xiàn)另一語利用已有的某種語言的編譯程序?qū)崿F(xiàn)另一語言的編譯程序。言的編譯程序。L1語言語言A代碼代碼P1:A代碼代碼L2語言語言A代碼代碼P2: L1語言語言L2語言語言A代碼代碼P2:A代碼代碼同一臺機器同一臺機器不同的語言不同的語言編譯原理課題組編譯原理課題組五五. .編譯程序生成編譯程序生成n 移植方法移植方法把一種機器上的編譯程序移植到另一種機器把一

30、種機器上的編譯程序移植到另一種機器上。上。L語言語言A代碼代碼P1:A代碼代碼L語言語言B代碼代碼P2: L語言語言L語言語言B代碼代碼P2:A代碼代碼L語言語言B代碼代碼P2: L語言語言L語言語言B代碼代碼P2:B代碼代碼同一種語言同一種語言不同的機器不同的機器編譯原理課題組編譯原理課題組L1+L2+.+LnL1+L2五五. .編譯程序生成編譯程序生成n自展技術(shù)自展技術(shù)L1編譯原理課題組編譯原理課題組五五. .編譯程序生成編譯程序生成n編譯程序自動產(chǎn)生編譯程序自動產(chǎn)生編譯程序編譯程序- -編譯程序,編譯程序書寫系統(tǒng)編譯程序,編譯程序書寫系統(tǒng)LEX LEX 詞法分析程序產(chǎn)生器詞法分析程序產(chǎn)生

31、器YACC YACC 語法分析程序產(chǎn)生器語法分析程序產(chǎn)生器編譯程序編譯程序自動產(chǎn)生器自動產(chǎn)生器L語言的語法描述語言的語法描述語義描述語義描述目標(biāo)語言目標(biāo)語言或機器描述或機器描述L語言的語言的編譯程序編譯程序編譯原理課題組編譯原理課題組六六. . 關(guān)于學(xué)習(xí)編譯原理關(guān)于學(xué)習(xí)編譯原理n 構(gòu)造編譯程序的前提構(gòu)造編譯程序的前提: :掌握源語言掌握源語言掌握目標(biāo)語言掌握目標(biāo)語言掌握編譯方法掌握編譯方法編譯原理課題組編譯原理課題組六六. . 關(guān)于學(xué)習(xí)編譯原理關(guān)于學(xué)習(xí)編譯原理n意義意義: :學(xué)習(xí)編譯程序構(gòu)造原理,技術(shù)學(xué)習(xí)編譯程序構(gòu)造原理,技術(shù)更好地理解高級語言更好地理解高級語言編譯的原理和方法有助于構(gòu)造一些實

32、用的編譯的原理和方法有助于構(gòu)造一些實用的工具工具編譯原理課題組編譯原理課題組六六. . 關(guān)于學(xué)習(xí)編譯原理關(guān)于學(xué)習(xí)編譯原理n 課程特點課程特點: :理解性理解性技術(shù)性技術(shù)性n 考核:考核:作業(yè)及上機實習(xí):作業(yè)及上機實習(xí):30%30%筆試:筆試:70%70% 內(nèi)容內(nèi)容1 1 什么是編譯程序什么是編譯程序2 2 編譯過程和編譯程序的結(jié)構(gòu)編譯過程和編譯程序的結(jié)構(gòu)3 3 為什么要學(xué)習(xí)編譯程序為什么要學(xué)習(xí)編譯程序 重點重點對編譯程序的功能和結(jié)構(gòu)做一綜述對編譯程序的功能和結(jié)構(gòu)做一綜述 難點難點了解編譯程序各個成分在編譯階段的邏輯了解編譯程序各個成分在編譯階段的邏輯關(guān)系以及他們怎樣作為一個整體完成編譯關(guān)系以及他們怎樣作為一個整體完

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論