北京化工大學(xué)信息科學(xué)與技術(shù)學(xué)院計算機系_第1頁
北京化工大學(xué)信息科學(xué)與技術(shù)學(xué)院計算機系_第2頁
北京化工大學(xué)信息科學(xué)與技術(shù)學(xué)院計算機系_第3頁
北京化工大學(xué)信息科學(xué)與技術(shù)學(xué)院計算機系_第4頁
北京化工大學(xué)信息科學(xué)與技術(shù)學(xué)院計算機系_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第2章編譯簡介2.1

編譯器

2.2

編譯器的構(gòu)造

2.3

編譯器的實例

2.4

與編譯相關(guān)的數(shù)據(jù)構(gòu)造

2.5

編譯器各階段的分組

2.6

編譯器的構(gòu)造工具

1/6/20241北京化工大學(xué)信息科學(xué)與技術(shù)學(xué)院計算機系2.1編譯簡介●程序設(shè)計言語程序設(shè)計言語低級言語:面向機器的言語機器言語匯編言語過程式言語Fortran,Pascal,C…函數(shù)式言語Lisp…邏輯式言語Prolog…對象式言語C++…高級言語CompilerSourceProgramTargetProgram1/6/20242北京化工大學(xué)信息科學(xué)與技術(shù)學(xué)院計算機系0011010010101010…0100101110110100目的模塊0011010010101010……0100101110110100#include<iostream.h>intmain(void){inta;…;cin>>…;…;return0;}源程序TextEditor文本編輯器Linker鏈接器Compiler編譯Preprocessor預(yù)處置程序Translator翻譯程序系統(tǒng)庫●BuildingaProgram構(gòu)建程序1/6/20243北京化工大學(xué)信息科學(xué)與技術(shù)學(xué)院計算機系根底程序Interpreters解釋程序Assemblers匯編程序Linkers銜接程序Loaders裝入程序Preprocessors預(yù)處置程序●編譯相關(guān)程序IDE程序Editors編輯器Debuggers調(diào)試器Profilers描畫器Projectmanagers工程管理器1/6/20244北京化工大學(xué)信息科學(xué)與技術(shù)學(xué)院計算機系目的程序源程序編譯程序初始數(shù)據(jù)計算結(jié)果功能工作結(jié)果實現(xiàn)技術(shù)上編譯程序源程序的一個轉(zhuǎn)換系統(tǒng)源程序的目標(biāo)代碼把中間代碼轉(zhuǎn)換成目標(biāo)程序解釋程序源程序的一個執(zhí)行系統(tǒng)源程序的執(zhí)行結(jié)果執(zhí)行中間代碼源程序解釋程序初始數(shù)據(jù)計算結(jié)果●編譯和解釋程序1/6/20245北京化工大學(xué)信息科學(xué)與技術(shù)學(xué)院計算機系翻譯外文資料編譯源程序分析閱讀原文識別單詞句子結(jié)構(gòu)句子釋義輸入并掃描源程序詞法分析語法分析語義分析綜合修辭加工寫出譯文代碼優(yōu)化目標(biāo)代碼生成2.2編譯器的構(gòu)造翻譯外文資料與編譯源程序進展類比1/6/20246北京化工大學(xué)信息科學(xué)與技術(shù)學(xué)院計算機系詞法分析源程序目標(biāo)程序語法分析語義分析文字表、符號表處置錯誤處置中間代碼優(yōu)化中間代碼生成前端后端●Thephaseofacompiler編譯程序的構(gòu)造●Thephaseofacompiler編譯程序的構(gòu)造目標(biāo)代碼生成1/6/20247北京化工大學(xué)信息科學(xué)與技術(shù)學(xué)院計算機系詞法分析:Input:astreamofcharacters,Output:a,[,index,],=,4,+,2(Tokens)語法分析:Input:theformsoftokensOutput:aparsetreeorasyntaxtree例:a[index]=4+22.3編譯器的實例1/6/20248北京化工大學(xué)信息科學(xué)與技術(shù)學(xué)院計算機系expressionAssign-expressionexpression=expressionSubscript-expressionAdditive-expressiveexpression[expression]expressionexpressionIdentifieraIdentifierindexNumber4Number2+Assign-expressionSubscript-expressionAdditive-expressiveIdentifieraIdentifierindexNumber4Number2●分析樹parsetree●語法樹syntaxtree1/6/20249北京化工大學(xué)信息科學(xué)與技術(shù)學(xué)院計算機系●語義分析Assign-expressionSubscript-expressionintegerAdditive-expressiveintegerIdentifieraArrayofintegerIdentifierindexintegerNumber4integerNumber2integer●源代碼優(yōu)化Assign-expressionSubscript-expressionintegerIdentifieraArrayofintegerIdentifierindexintegerNumber6integer1/6/202410北京化工大學(xué)信息科學(xué)與技術(shù)學(xué)院計算機系●代碼生成●目的代碼優(yōu)化MOVR0,indexMULR0,2MOVR1,&aADDR1,R0MOV*R1,6MOVR0,indexSHLR0MOV&a[R0],6Input:intermediatecodeorIROutput:machinecode,codeforthetargetmachine1/6/202411北京化工大學(xué)信息科學(xué)與技術(shù)學(xué)院計算機系2.4與編譯相關(guān)的數(shù)據(jù)構(gòu)造●枚舉類型:記號(tokens)種類、語法單位等的命名;●構(gòu)造體:分析樹(parsertree)、語法樹(syntaxtree)的結(jié)點,符號表(symboltable)等;●樹型構(gòu)造:分析樹、語法樹、注釋樹等;●線性表、哈希表:符號表、常數(shù)表(literaltable);●文件:輸入、輸出、暫時文件(temporaryfiles)。1/6/202412北京化工大學(xué)信息科學(xué)與技術(shù)學(xué)院計算機系編譯程序的前端:與源言語有關(guān),而與目的機無關(guān)的編譯程序編譯程序的后端:與目的機有關(guān),而與源言語無關(guān)的編譯程序遍〔趟〕:是對源程序或源程序的中間結(jié)果從頭到尾掃描一遍,并作有關(guān)加工處置,生成新的中間結(jié)果或目的程序。宿主機:運轉(zhuǎn)編譯程序的計算機稱為宿主機。目的機:運轉(zhuǎn)編譯程序所產(chǎn)生的目的代碼的計算機成為目的機。2.5編譯器各階段的分組1/6/202413北京化工大學(xué)信息科學(xué)與技術(shù)學(xué)院計算機系要求:程序設(shè)計言語實現(xiàn)編譯程序的開發(fā)2.6編譯程序的構(gòu)造工具預(yù)處置法移植法自展法工具法實際法開發(fā)編譯程序的途徑●編譯程序的構(gòu)造工具分析器生成器掃描器生成器語法制導(dǎo)翻譯引擎自動代碼生成器數(shù)據(jù)流引擎源言語目的言語編譯方法●設(shè)計和實現(xiàn)編譯程序,必需知曉Pascal編譯程序C編譯程序Fortran編譯程序●經(jīng)典的編譯程序1/6/202414北京化工大學(xué)信息科學(xué)與技術(shù)學(xué)院計算機系第2章編譯簡介2.1

編譯器

2.2

編譯器的構(gòu)造

2.3

編譯器的實例

2.4

與編譯相關(guān)的數(shù)據(jù)構(gòu)造

溫馨提示

  • 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

提交評論