版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、會(huì)計(jì)學(xué)1編譯原理編譯原理第一頁(yè),編輯于星期日:十九點(diǎn) 二十分。2022-5-32programmingPrinciple of compiler constructionFoundation of programming language第1頁(yè)/共51頁(yè)第二頁(yè),編輯于星期日:十九點(diǎn) 二十分。2022-5-33源程序源程序編譯編譯程序程序目標(biāo)程序目標(biāo)程序連接連接可執(zhí)行程序可執(zhí)行程序第2頁(yè)/共51頁(yè)第三頁(yè),編輯于星期日:十九點(diǎn) 二十分。2022-5-34第3頁(yè)/共51頁(yè)第四頁(yè),編輯于星期日:十九點(diǎn) 二十分。2022-5-35第4頁(yè)/共51頁(yè)第五頁(yè),編輯于星期日:十九點(diǎn) 二十分。2022-5-36重
2、點(diǎn)第5頁(yè)/共51頁(yè)第六頁(yè),編輯于星期日:十九點(diǎn) 二十分。2022-5-37第6頁(yè)/共51頁(yè)第七頁(yè),編輯于星期日:十九點(diǎn) 二十分。2022-5-38第1版第2版中譯本第7頁(yè)/共51頁(yè)第八頁(yè),編輯于星期日:十九點(diǎn) 二十分。2022-5-39第8頁(yè)/共51頁(yè)第九頁(yè),編輯于星期日:十九點(diǎn) 二十分。2022-5-310第9頁(yè)/共51頁(yè)第十頁(yè),編輯于星期日:十九點(diǎn) 二十分。2022-5-311Operating SystemHardware (Low Level Language)CompilerApplications (High Level Language)a = b + c * dMOV A, d
3、MUL A, dADD A, bMOV va, AAssembly CodesRegister-based orStack-based machines第10頁(yè)/共51頁(yè)第十一頁(yè),編輯于星期日:十九點(diǎn) 二十分。2022-5-312CompilerSource programTarget programError message第11頁(yè)/共51頁(yè)第十二頁(yè),編輯于星期日:十九點(diǎn) 二十分。2022-5-313第12頁(yè)/共51頁(yè)第十三頁(yè),編輯于星期日:十九點(diǎn) 二十分。2022-5-314CompilerSourceProgram/Code(C, Pascal etc.)TargetProgram/Co
4、de(Assembly,Machine Code)Error Messagea = b + c * dT1 := c * dT2 := b + T1a := T2MOV A, cMUL A, dADD A, bMOV va, A第13頁(yè)/共51頁(yè)第十四頁(yè),編輯于星期日:十九點(diǎn) 二十分。2022-5-315源程序 翻譯程序 目標(biāo)程序第14頁(yè)/共51頁(yè)第十五頁(yè),編輯于星期日:十九點(diǎn) 二十分。2022-5-316第15頁(yè)/共51頁(yè)第十六頁(yè),編輯于星期日:十九點(diǎn) 二十分。2022-5-317第16頁(yè)/共51頁(yè)第十七頁(yè),編輯于星期日:十九點(diǎn) 二十分。2022-5-318 Java BytecodesJa
5、va program(app.java)(Javac)(app.class)第17頁(yè)/共51頁(yè)第十八頁(yè),編輯于星期日:十九點(diǎn) 二十分。2022-5-319第18頁(yè)/共51頁(yè)第十九頁(yè),編輯于星期日:十九點(diǎn) 二十分。2022-5-320PreprocessorSource ProgramModified Source ProgramCompilerTarget Assembly ProgramAssemblerRelocatable Machine CodeTarget Machine CodeLibrary filesand/orRelocatable object filesLinker/Lo
6、aderThe context of a compiler第19頁(yè)/共51頁(yè)第二十頁(yè),編輯于星期日:十九點(diǎn) 二十分。2022-5-321詞法分析詞法分析代碼優(yōu)化代碼優(yōu)化語(yǔ)法分析語(yǔ)法分析語(yǔ)義分析及中間代碼生成語(yǔ)義分析及中間代碼生成目標(biāo)代碼生成目標(biāo)代碼生成第20頁(yè)/共51頁(yè)第二十一頁(yè),編輯于星期日:十九點(diǎn) 二十分。2022-5-322第21頁(yè)/共51頁(yè)第二十二頁(yè),編輯于星期日:十九點(diǎn) 二十分。2022-5-323詞法分析器詞法分析器語(yǔ)法分析器語(yǔ)法分析器語(yǔ)義分析器語(yǔ)義分析器源程序源程序中間代碼生成器中間代碼生成器代碼優(yōu)化器代碼優(yōu)化器代碼生成器代碼生成器目標(biāo)程序目標(biāo)程序出錯(cuò)管理器出錯(cuò)管理器符號(hào)表管理器
7、符號(hào)表管理器第22頁(yè)/共51頁(yè)第二十三頁(yè),編輯于星期日:十九點(diǎn) 二十分。2022-5-324第23頁(yè)/共51頁(yè)第二十四頁(yè),編輯于星期日:十九點(diǎn) 二十分。2022-5-325第24頁(yè)/共51頁(yè)第二十五頁(yè),編輯于星期日:十九點(diǎn) 二十分。2022-5-326第25頁(yè)/共51頁(yè)第二十六頁(yè),編輯于星期日:十九點(diǎn) 二十分。2022-5-327符符 號(hào)號(hào) 表表 positioninitialrate. . . . . . .123詞法分析器詞法分析器id1 := id2 + id3 * * 60 position := initial + rate * * 60lexical analyzer第26頁(yè)/共5
8、1頁(yè)第二十七頁(yè),編輯于星期日:十九點(diǎn) 二十分。2022-5-328單詞類(lèi)型單詞類(lèi)型 單詞單詞值值保留字 int標(biāo)識(shí)符 a界符 ;標(biāo)識(shí)符 a算符(賦值) =標(biāo)識(shí)符 a算符(加) +整數(shù) 2界符;第27頁(yè)/共51頁(yè)第二十八頁(yè),編輯于星期日:十九點(diǎn) 二十分。2022-5-329第28頁(yè)/共51頁(yè)第二十九頁(yè),編輯于星期日:十九點(diǎn) 二十分。2022-5-330assignment statementidentifier:=expressionpositionexpressionexpression+expressionexpression*identifiernumberrate60identifier
9、initialParse tree語(yǔ)法分析語(yǔ)法分析第29頁(yè)/共51頁(yè)第三十頁(yè),編輯于星期日:十九點(diǎn) 二十分。2022-5-331Syntax tree is a compressed representation of the parse tree.:=position+*rate60initial第30頁(yè)/共51頁(yè)第三十一頁(yè),編輯于星期日:十九點(diǎn) 二十分。2022-5-332符符 號(hào)號(hào) 表表 positioninitialrate. . . . . . .123語(yǔ)法分析器語(yǔ)法分析器id1 := id2 + id3 * * 60 :=+* *60id1id2id3Syntax Analyzer
10、第31頁(yè)/共51頁(yè)第三十二頁(yè),編輯于星期日:十九點(diǎn) 二十分。2022-5-333第32頁(yè)/共51頁(yè)第三十三頁(yè),編輯于星期日:十九點(diǎn) 二十分。2022-5-334語(yǔ)義分析語(yǔ)義分析錯(cuò)在哪里?例1: int arr2, c; c = arr1 * 10; 例2: Program p(input,output); var rate: real; procedure initial; position := initial + rate*60第33頁(yè)/共51頁(yè)第三十四頁(yè),編輯于星期日:十九點(diǎn) 二十分。2022-5-335Semantic analysis inserts a conversion fro
11、m integer to real.:=position+*rate60initialinttoreal插入語(yǔ)義處理結(jié)點(diǎn)的語(yǔ)法樹(shù)插入語(yǔ)義處理結(jié)點(diǎn)的語(yǔ)法樹(shù)第34頁(yè)/共51頁(yè)第三十五頁(yè),編輯于星期日:十九點(diǎn) 二十分。2022-5-336符符 號(hào)號(hào) 表表 positioninitialrate. . . . . . .123語(yǔ)義分析器語(yǔ)義分析器:=+* *60id1id2id3:=+* *60id1id2id3inttorealSemantic Analyzer第35頁(yè)/共51頁(yè)第三十六頁(yè),編輯于星期日:十九點(diǎn) 二十分。2022-5-337符符 號(hào)號(hào) 表表 positioninitialrate.
12、. . . . . .123中間代碼生成器中間代碼生成器temp1 := inttoreal(60)temp2 := id3 * temp1temp3 := id2 + temp2id1 := temp3:=+* *60id1id2id3inttorealIntermediate Code Generator第36頁(yè)/共51頁(yè)第三十七頁(yè),編輯于星期日:十九點(diǎn) 二十分。2022-5-338符符 號(hào)號(hào) 表表 positioninitialrate. . . . . . .123代碼優(yōu)化器代碼優(yōu)化器temp1 := inttoreal(60)temp2 := id3 * temp1temp3 :=
13、id2 + temp2id1 := temp3temp1 := id3 * * 60.0id1 := id2 + + temp1Code Optimizer第37頁(yè)/共51頁(yè)第三十八頁(yè),編輯于星期日:十九點(diǎn) 二十分。2022-5-339符符 號(hào)號(hào) 表表 positioninitialrate. . . . . . .123temp1 := id3 * * 60.0id1 := id2 + + temp1代碼生成器代碼生成器MOVF id3, R2MULF #60.0, R2MOVF id2, R1ADDF R2, R1MOVF R1, id1Code Generator第38頁(yè)/共51頁(yè)第三十
14、九頁(yè),編輯于星期日:十九點(diǎn) 二十分。2022-5-340第39頁(yè)/共51頁(yè)第四十頁(yè),編輯于星期日:十九點(diǎn) 二十分。2022-5-341character streamtoken streamsyntax treesyntax treeIntermediaterepresentationIntermediaterepresentationtarget-machine code第40頁(yè)/共51頁(yè)第四十一頁(yè),編輯于星期日:十九點(diǎn) 二十分。2022-5-342第41頁(yè)/共51頁(yè)第四十二頁(yè),編輯于星期日:十九點(diǎn) 二十分。2022-5-343第42頁(yè)/共51頁(yè)第四十三頁(yè),編輯于星期日:十九點(diǎn) 二十分。2022-5-344第43頁(yè)/共51頁(yè)第四十四頁(yè),編輯于星期日:十九點(diǎn) 二十分。2022-5-345單詞錯(cuò)語(yǔ)法錯(cuò)語(yǔ)義錯(cuò)(如多重定義、類(lèi)型不匹配)環(huán)境錯(cuò)(如數(shù)組太大、名字太長(zhǎng))溢出外設(shè)錯(cuò)誤(I/O錯(cuò))訪問(wèn)內(nèi)存越界編譯錯(cuò)誤運(yùn)行錯(cuò)誤邏輯錯(cuò)誤錯(cuò)誤分類(lèi)第44頁(yè)/共51頁(yè)第四十五頁(yè),編輯于星期日:十九點(diǎn) 二十分。2022-5-346源代碼前 端中間代碼后 端目標(biāo)代碼Front End : Analysis + Intermediate Code Generation
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026屆河南省濮陽(yáng)市臺(tái)前一高數(shù)學(xué)高二上期末學(xué)業(yè)水平測(cè)試模擬試題含解析
- 內(nèi)鄉(xiāng)介紹教學(xué)課件
- 烘焙培訓(xùn)機(jī)構(gòu)的管理制度(3篇)
- 美術(shù)功能室管理制度小學(xué)(3篇)
- 轉(zhuǎn)運(yùn)司機(jī)的閉環(huán)管理制度(3篇)
- 采樣儀器維護(hù)和管理制度(3篇)
- 中學(xué)學(xué)生社團(tuán)活動(dòng)成果展示制度
- 養(yǎng)老院消毒隔離制度
- 企業(yè)企業(yè)文化與團(tuán)隊(duì)建設(shè)制度
- 2026湖南邵陽(yáng)市邵東市人才引進(jìn)62人參考題庫(kù)附答案
- 2025至2030中國(guó)防盜保險(xiǎn)柜行業(yè)市場(chǎng)運(yùn)行態(tài)勢(shì)分析及發(fā)展前景與投資報(bào)告
- 酒店員工手冊(cè)
- 安慶四中學(xué)2024年七上數(shù)學(xué)期末考試試題含解析
- 帶狀皰疹中醫(yī)病例討論
- 經(jīng)濟(jì)法學(xué)-002-國(guó)開(kāi)機(jī)考復(fù)習(xí)資料
- T/CCMA 0147-2023異型吊籃安裝、使用和拆卸安全技術(shù)規(guī)程
- 【高中數(shù)學(xué)競(jìng)賽真題?強(qiáng)基計(jì)劃真題考前適應(yīng)性訓(xùn)練】 專(zhuān)題03三角函數(shù) 真題專(zhuān)項(xiàng)訓(xùn)練(全國(guó)競(jìng)賽+強(qiáng)基計(jì)劃專(zhuān)用)原卷版
- SL631水利水電工程單元工程施工質(zhì)量驗(yàn)收標(biāo)準(zhǔn)第1部分:土石方工程
- 危重新生兒救治中心危重新生兒管理制度
- (二調(diào))武漢市2025屆高中畢業(yè)生二月調(diào)研考試 英語(yǔ)試卷(含標(biāo)準(zhǔn)答案)+聽(tīng)力音頻
- 醫(yī)院傳染病疫情報(bào)告管理工作職責(zé)
評(píng)論
0/150
提交評(píng)論