




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
編譯原理引論授課:胡靜2023/7/23編譯原理2教材及參考書教材:《程序設計語言編譯原理(第3版)》,國防工業出版社,陳火旺等編著主要參考資料編譯原理(CompilersPrinciples,Techniques,andTools)出版社:機械工業出版社《編譯原理》,清華大學出版社,呂映芝、張素琴、蔣維杜編著2023/7/23編譯原理3相關課程課程基礎數據結構計算機原理和匯編語言高級程序設計語言后續課程編譯技術2023/7/23編譯原理4第一章概論編譯的起源:程序設計語言的發展基本概念編譯過程和編譯程序的構造2023/7/23編譯原理5程序設計語言的發展2023/7/23編譯原理6基本概念低級語言(LowlevelLanguage)字位碼、機器語言、匯編語言特點:與特定的機器有關,功效高,但使用復雜、繁瑣、費時、易出錯高級語言Fortran、Pascal、C語言等特點:不依賴具體機器,移植性好、對用戶要求低、易使用、易維護等。
2023/7/23編譯原理7基本概念2023/7/23編譯原理8基本概念2023/7/23編譯原理9源程序的編譯和運行2023/7/23編譯原理10源程序的解釋運行2023/7/23編譯原理11源程序的編譯-解釋運行2023/7/23編譯原理12編譯器和解釋器編譯器和解釋器的比較相同點(執行相同的任務):檢查輸入程序并確定這個程序是否一個有效程序建立一個內部模型來刻畫輸入程序的結構和含義決定在執行期間值的存放位置不同點(執行的行為不同):編譯器以一個可執行程序的描述作為輸入,以另一個等價的可執行程序的描述作為輸出。解釋器以一個可執行程序的描述作為輸入,以執行這一可執行程序描述的結果作為輸出。2023/7/23編譯原理13舉例典型的編譯器:gcc,javac非典型的編譯器:latex(documentcompiler):TransformsaLaTeXdocumentintoDVIprintingcommandsInputinformation=document(notprogram)解釋器:f2c:Fortran-to-Ctranslator(bothhigh-level)latex2html:LaTeX-to-HTML(bothdocuments)2023/7/23編譯原理14我們為什么需要編譯器編寫、調試、維護和理解用裝配語言(assemblelanguage)編寫的程序是很困難的自從第一個編譯器出現之后,軟件產品的數量有了巨大的增加。但是仍然有一些情況需要用裝配語言編寫例如,訪問某些底層的機器資源(設備驅動)這些代碼規模一般較小,還是需要編譯器去處理其他的應用2023/7/23編譯原理15編譯器構造法的研究目的好的編譯器是計算機科學的縮影包含大量的技術:貪婪算法(寄存器分配)、啟發式搜索技術(列表調度)、圖形算法(死碼消除)、動態規劃(指令篩選)、有窮自動機和下推自動機(掃描和語法分析)、不動點算法(數據流分析)處理復雜的問題:動態分配、同步、命名、局部化、存儲器分層管理、管道調度提供完整的解決方案:有機的結合算法、軟件體系結構和軟件工程的各種理論,對棘手問題給出綜合性的解答方案。2023/7/23編譯原理16什么是編譯器什么是編譯程序預處理器編譯器匯編器裝配連接編輯骨架程序
源程序
目標匯編程序
可重定位機器代碼
絕對機器碼可重定位目標文件庫2023/7/23編譯原理17源代碼符合人類閱讀習慣符合人類語法定義使用被命名的結構,例如變量和過程2023/7/23編譯原理18裝配語言機器代碼符合硬件需求包含機器指令,使用寄存器和沒有命名的內存地址對人類來說很難理解2023/7/23編譯原理19例子:輸出的裝配代碼沒有優化的代碼優化后的代碼2023/7/23編譯原理20編譯器的基本原則編譯器是工程對象,是具有獨特目標的大型軟件系統,兩個設計原則必須遵守不違背原義編譯器必須保持被編譯程序的含義不變這一原則是編譯器設計者與編譯器用戶之間的契約的核心實用性原則編譯器必須用某種明確的方式改進輸入程序例如代碼優化等對輸入程序的改進2023/7/23編譯原理21有效的轉換目標:產生和源代碼描述相同計算的機器代碼這種轉換是唯一的嘛?有沒有“完美的轉換”(速度快,代碼量小)編譯器優化=找到更好的轉換2023/7/23編譯原理22轉換的正確性產生的代碼必須精確的執行和源代碼相同的計算正確性很重要用不正確的編譯器調試程序很難……和開發的成本、安全性密切相關編譯原理這門課程講述的就是可以保證轉換安全性的技術。2023/7/23編譯原理23如何轉換轉換是一個很復雜的過程源程序語言和目標程序語言是截然不同的我們需要結構化這個轉換過程定義中間階段每個階段完成特定的功能2023/7/23編譯原理24一個簡單的編譯器的結構2023/7/23編譯原理25簡單的前端結構2023/7/23編譯原理26Analogy(ctd)前端可以通過類比于人類理解自然語言的過程進行解釋詞法分析自然語言:Hewrotetheprogram
單詞:‘he’‘wrote’‘the’‘program’編程語言:if(b==0)a=b token:‘if’‘(’‘b’‘==’‘0’‘)’‘a’‘=’‘b’2023/7/23編譯原理27Analogy(ctd)語法分析自然語言編程語言2023/7/23編譯原理28Analogy(ctd)語義分析自然語言He wrote the computernoun verb article noun語法正確,語義錯誤!編程語言if(b==0) a=foo test assignment如果a是一個整型變量而foo是一個過程,那么語義分析就會報錯2023/7/23編譯原理29詞法分析詞法分析也叫線性分析和掃描。從左到右的讀構成源程序的字符流,分組為多個記號。詞法分析器position:=initial+rate*60id1:=id2+id3*602023/7/23編譯原理30語法分析語法分析也叫層次分析,把源程序的記號進一步分組,產生被編譯器用于生成代碼的語法短語。程序的語法結構常常需要遞歸上下文無關文法是遞歸規則的一種形式化,可以指導語法分析由于詞法分析不要求遞歸,因此我們通常不明確的界定詞法分析和語法分析的界限。也就是說,我們將詞法分析程序當成語法分析程序調用的一個子程序。2023/7/23編譯原理31語法分析(續)語法分析器id1:=id2+id3*60id1id3id2:=+*60在本例中,算符優先級可以通過如下方法定義:1.定義程序語言的語法規則體現算符的優先級2.通過某些規則庫,例如算符優先級表格等來定義算符的優先級2023/7/23編譯原理32語義分析(續)語義分析器id1id3id2:=+*60id1id3id2:=+*inttoreal60在本例中,幾個標識符都是實數類型,而且源程序語言允許整數向實數類型的強制轉換2023/7/23編譯原理33編譯器的應用模型(邏輯結構)出錯處理語法分析程序語義分析程序目標代碼生成程序詞法分析程序中間代碼生成程序代碼優化程序表格管理編譯的前端(FrontEnd)分析部分與源語言有關編譯的后端(BackEnd)綜合部分與目標語言有關2023/7/23編譯原理342023/7/23編譯原理352023/7/23編譯原理36遍(PASS)遍:對源程序(包括源程序的中間表示形式)從頭到尾掃描一次并作有關的加工處理,生成新的源程序中間形式或目標程序,通常稱之為一遍。上一遍的結果是下一遍的輸入,最后一遍生成目標程序。遍與基本階段的區別:五個基本階段是將源程序翻譯成目標程序在邏輯上要完成的工作遍是指完成上述五個基本階段的工作要經過幾次掃描處理2023/7/23編譯原理372023/7/23編譯原理38
Thanksforyourtime!Q
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 就該這么做作文700字(14篇)
- 童話里的世界奇妙的冒險故事作文15篇
- 快樂假期旅行記作文(10篇)
- 2025至2030全球及中國擠塑聚苯乙烯(Xps)面板行業項目調研及市場前景預測評估報告
- 網聯環境下異質交通動態路徑誘導方法研究
- 熱致液晶聚芳酯結構與性能關系的研究
- 柔肝散結丸聯合HAIC術治療氣滯血瘀型PLC患者的臨床療效研究
- 基于BOPPPS模式的高中化學可視化教學設計與實踐研究
- C銀行零售信貸業務審批權限評價體系研究
- 我們的榜樣作文800字榜樣作文(8篇)
- 目標探測與識別知到智慧樹章節測試課后答案2024年秋北京航空航天大學
- 安全附件管理培訓
- 【MOOC】世界貿易組織法-上海對外經貿大學 中國大學慕課MOOC答案
- 新《安全生產法》安全培訓
- 【MOOC】油氣地質與勘探-中國石油大學(華東) 中國大學慕課MOOC答案
- 花卉栽培學考試要點
- 《卵巢惡性腫瘤》課件
- 生產設備操作安全培訓
- 大國兵器 (中北大學)知到智慧樹章節答案
- 市政道路施工方案投標文件(技術方案)
- 2024年國有資產保值增值管理協議
評論
0/150
提交評論