




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、編譯原理及實現(xiàn)技術(shù)課程內(nèi)容介紹編譯器基本構(gòu)造原理基本實現(xiàn)方法基本處理技術(shù)介紹理論知識形式語言自動機理論強調(diào)形式化描述技術(shù)抽象思想強調(diào)對編譯原理宏觀理解對編譯處理技術(shù)的宏觀理解課程意義掌握編譯程序的構(gòu)造原理和實現(xiàn)技術(shù)。深入對程序設(shè)計語言的理解;(片面vs全面)提高軟件開發(fā)能力;(同一功能的不同實現(xiàn))提高元級程序設(shè)計能力;(編譯器的設(shè)計實現(xiàn))增強形式化、抽象化能力;(問題形式化)編譯技術(shù)的廣泛的應(yīng)用。嵌入式系統(tǒng)(受限資源利用)ERP二次開發(fā)(三分之一需要修改)冗余代碼分析(變量調(diào)用、閑置函數(shù))第一章 編譯引論程序設(shè)計語言程序設(shè)計環(huán)境中的編譯器編譯程序的結(jié)構(gòu)編譯程序的設(shè)計與實現(xiàn)1 程序設(shè)計語言與編譯
2、程序程序語言的發(fā)展高級語言的實現(xiàn)方式1.1 程序設(shè)計語言的發(fā)展機器語言:能夠被計算機的硬件系統(tǒng)直接執(zhí)行的指令程序,如“0001000101”。匯編語言:將硬件指令用一些助記符表示,即符號化的機器語言,如“ADD,MOV”。高級語言:從程序員的角度出發(fā),對匯編語言進一步抽象,使用便于理解的“自然語言”表述。 機器語言 匯編語言 高級語言 翻譯程序Translator1.2 高級語言的實現(xiàn)方式匯編程序Assembler編譯程序Compiler1.2.1 解釋方式解釋方式:接受用程序語言(源語言)編寫的程序(源程序),然后直接解釋執(zhí)行源程序。解釋器相當(dāng)于源程序的抽象執(zhí)行機,是語言的實現(xiàn)系統(tǒng)。 解釋程
3、序源程序輸入數(shù)據(jù)計算結(jié)果(*.bas/*.java)1.2.2 編譯方式編譯方式:源語言為高級語言,目標(biāo)語言是低級語言(匯編或機器語言)的翻譯程序。 源程序目標(biāo)程序(*.C/*.PAS)(*.OBJ/*.EXE)編譯程序1.2.3 轉(zhuǎn)換方式轉(zhuǎn)換方式:將A語言程序轉(zhuǎn)換為B語言程序,用B語言已有的編譯器去編譯執(zhí)行。(同級程序設(shè)計語言) 編譯、解釋A語言程序轉(zhuǎn)換程序B語言程序源程序目標(biāo)程序(*.C/*.PAS)(*.OBJ/*.EXE)解釋程序源程序輸入數(shù)據(jù)計算結(jié)果(*.bas/*.java)A語言程序轉(zhuǎn)換程序編譯程序B語言程序2 編譯程序和程序設(shè)計環(huán)境典型IDE編譯器在IDE中的位置編輯器:除了一
4、般文本編輯器的功能外,還可具有對正在編輯的文本進行分析、提示,能自動地提供關(guān)鍵字和與其匹配的關(guān)鍵字 等功能。預(yù)處理器:工作包括刪除源程序中的注釋、執(zhí)行宏替換以及包含文件的嵌入等。編譯器簡約而不簡單連接程序:將不同的目標(biāo)文件中編譯或匯編的代碼集中到一個可執(zhí)行文件中,并將目標(biāo)和標(biāo)準(zhǔn)庫函數(shù)的代碼以及計算機的操作系統(tǒng)提供的資源連接在一起。裝入程序:把程序加載到內(nèi)存儲器中,以便執(zhí)行。 調(diào)試程序:檢查編譯了的程序中的錯誤。 3 編譯程序的邏輯結(jié)構(gòu)編譯器的結(jié)構(gòu)各組成部分的功用實例編譯器 3.1 編譯程序的邏輯結(jié)構(gòu)圖詞法分析語法分析語義分析源程序中間代碼生成中間代碼優(yōu)化目標(biāo)代碼生成目標(biāo)程序出錯處理表格管理 詞
5、法分析Lexical Analysis(Scanner/Tokenizer) 掃描源程序的字符串,依循語言的詞法規(guī)則,識別每一個有集體含義的子串,并將其表示成所謂的機內(nèi)表示記號形式(Token)。語法分析 Syntax Analysis(Parser)依據(jù)語言的語法規(guī)則,將單詞的Token序列分解成各類語法短語(可表示為語法樹),確定整個輸入串是否構(gòu)成一個語法上正確的程序。語義分析 Semantic Analysis 檢查源程序有無語義錯誤,為代碼生成階段收集信息。(類型檢查、強制類型轉(zhuǎn)換、下標(biāo)越界檢查等)中間代碼生成 Intermediate Code Generation 將源程序轉(zhuǎn)換成一
6、種稱為中間代碼的內(nèi)部表示形式。中間代碼是一種簡單的、含義明確的記號系統(tǒng),例如四元式(運算符,對象1,對象2,結(jié)果)。中間代碼優(yōu)化 Code Optimization 變換或改造中間代碼,生成的目標(biāo)代碼更為高效,即節(jié)省時間和空間。目標(biāo)代碼生成 Target Code Generation 中間代碼變換為特定機器上的絕對指令代碼,或可重定位的指令代碼或匯編指令代碼。 表格管理 Table Management 為了合理的管理(構(gòu)造、查找、更新)表格(符號表、類型信息表),設(shè)立一些專門子程序稱為表格管理程序。 錯誤處理 Error Handler 各個階段還存在著錯誤處理模塊,當(dāng)有錯誤出現(xiàn)時,由相應(yīng)
7、的錯誤處理模塊給出解決方案,使得編譯器能夠繼續(xù)進行下去。3.2 Example of a piece of C code: real sum, first;int count;sum = first + count * 10;Out of the scannerrealReservedsumIdentifierfirstIdentifier;SemicolonintReservedcountIdentifiersumIdentifier=Equalfirst Identifier+AddOut of the parserAssignmentIdentifierEqualExpressionsu
8、m=ExpressionAddExpressionIdentifier+IdentifierMulVariablefirstcount*10Out of the semantic analyzer=Id1+Id2*Id3int_to_real10Out of the intermediate code generator(int_to_real,10,-,t1)(*,id3,t1,t2)(+,id2,t2,t3)(=,t3,-,id1)Out of the optimizer(*,10.0,id3,t1)(+,t1,id2,id1)Out of the target code generatorMOVid3,R1MUL#10.0,R1MOVid2,R2ADDR2,R1MOVR1,id1 4 編譯程序的設(shè)計與實現(xiàn)4.1 編譯程序設(shè)計分遍 根據(jù)需求一至幾十遍都有要點準(zhǔn)確理解源語言確定對編譯的要求(可能導(dǎo)致過程差異)理解目標(biāo)機(即目標(biāo)程序的細(xì)節(jié))形式化描述(正則表達式、自動機)具體設(shè)計4.2 實現(xiàn)方法轉(zhuǎn)換法:將A語言程序轉(zhuǎn)換成B語言的程序,再利用B語言的編譯器實現(xiàn)A語言。移植
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- YesNo or Maybe So繪本閱讀(教學(xué)設(shè)計)-2024-2025學(xué)年人教新目標(biāo)Go For It!英語八年級上冊
- 4.2《爐中煤》《紅燭》教案-【中職專用】高二語文同步教學(xué)(高教版2024·拓展模塊下冊)
- 第一章《走進信息社會》第4課時《信息技術(shù)促進社會變革與發(fā)展》教學(xué)設(shè)計 2023-2024學(xué)年粵教版(2019)高中信息技術(shù)必修2
- 11-2《與妻書》教學(xué)設(shè)計-2024-2025學(xué)年高一語文下學(xué)期同步教學(xué)設(shè)計(統(tǒng)編版必修下冊)
- 探索1 物聯(lián)網(wǎng)的傳感技術(shù) 教學(xué)設(shè)計 2024-2025學(xué)年 蘇科版(2023)初中信息科技 八年級上冊
- 2024年12月國家空間科學(xué)中心太陽活動與空間天氣重點實驗室實驗人員公開招聘2人筆試歷年典型考題(歷年真題考點)解題思路附帶答案詳解
- Module 2 Public Holiday Unit 2教學(xué)設(shè)計2024-2025學(xué)年外研版英語九年級上冊
- 2025年船用動力堆及配套產(chǎn)品合作協(xié)議書
- 財會從業(yè)資格考試模擬題(附參考答案)
- 第18課 從九一八事變到西安事變(教學(xué)設(shè)計)-2024-2025學(xué)年浙江省部編版歷史與社會八年級上冊
- 學(xué)校物業(yè)管理宿舍管理方案995
- PFMEA-失效模式分析案例
- 荔枝依舊年年紅
- SMT貼片線項目可行性研究報告
- 新加坡公司法-英文版
- 第五版-FMEA-新版FMEA【第五版】
- 口腔修復(fù)學(xué)第三章牙體缺損的修復(fù)
- 建設(shè)部環(huán)衛(wèi)勞動定額
- 2023年棗莊科技職業(yè)學(xué)院單招綜合素質(zhì)模擬試題及答案解析
- 美容心理學(xué)概述(美容心理學(xué)課件)
- GB/T 25890.7-2010軌道交通地面裝置直流開關(guān)設(shè)備第7-1部分:直流牽引供電系統(tǒng)專用測量、控制和保護裝置應(yīng)用指南
評論
0/150
提交評論