




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、編譯原理,計算機與軟件學(xué)院盧克忠副教授手機辦公電話:26732030 QQ 33608256546郵箱3360,課程安排,B507星期二3和4;周四,5天和6天,單周:辦公樓,235實驗室,雙周:A208,周二,14:3016:30辦公時間:701,科技大廈7樓以北,績效評估,10%出勤率和課堂表現(xiàn),15%作業(yè),15%實驗,60%考試,問題和建議。手機公電話:26732030 QQ群:3216543 QQ號:8256546 Email:辦公地點:科技大廈7樓北側(cè)701室,建議學(xué)好這門課,注意實驗,訓(xùn)練編程技巧,上課認(rèn)真聽講,課后不知道如何及時
2、解決問題,耐心一致,課前預(yù)習(xí),課后復(fù)習(xí)。編譯原理課程教授如何使用計算機實現(xiàn)從編程語言到匯編語言和機器語言的自動轉(zhuǎn)換。課程內(nèi)容包括:語法介紹和詞匯分析;單詞識別語法分析;句子識別語法指導(dǎo)翻譯;目標(biāo)代碼生成的中間代碼和符號表的代碼優(yōu)化、存儲組織和分發(fā)、錯誤檢查和糾正,以及編譯原則和技術(shù)的重要性。編譯程序的構(gòu)建綜合了計算機科學(xué)的各個方面:計算機理論、程序設(shè)計和軟件工程。本課程教授的編譯程序的原理和技術(shù)具有普遍意義,是計算機工作所必需的。這些原則和技術(shù)將在計算機從業(yè)者的職業(yè)生涯中反復(fù)使用。至于編譯原理在計算機科學(xué)中的地位,國內(nèi)外許多計算機專家認(rèn)為“如果你沒有研究過編譯原理,就不能說你認(rèn)真研究過計算機科
3、學(xué)?!?,張素琴等,編譯原理(第二版),清華大學(xué)出版社,何延秀等2005,編譯原理,高等教育出版社,陳火旺等2004,程序設(shè)計語言編譯原理(第三版),國防工業(yè)出版社,阿爾弗雷德等。2006年,編譯者3360原理、技術(shù)與工具,第二版,人民郵電出版社,編譯原理(第二版),2008年,趙建華等譯,機械工業(yè)出版社,安德魯?shù)取?009年,現(xiàn)代編譯器在c語言中的實現(xiàn),人民郵電出版社,現(xiàn)代編譯原理(c語言描述), 2005年,趙克佳等譯,人民郵電出版社,2006年,參考文獻(xiàn),介紹什么是編譯器?你為什么需要編譯程序?編程語言的發(fā)展,低級語言機器語言:0,1代碼匯編語言:0,1代碼和助記符,工作高級語言,它更接近
4、計算機硬件指令系統(tǒng),定義數(shù)據(jù)和描述算法(程序),如C,JAVA,C,F(xiàn)ORTRAN,PASCAL,SQL,gap:機器不能理解高級語言,翻譯或解釋,解釋,解釋和翻譯(單句提交和整體提交),源程序,輸入數(shù)據(jù),計算結(jié)果,解釋器, 翻譯器將一種語言描述的程序(源程序)翻譯成另一種語言描述的等效程序(目標(biāo)程序)的程序。,翻譯程序,源程序,目標(biāo)程序,(*)。CPP/*。C/*。PAS/*。(*)。obj/*。exe/*。*)、編譯特殊翻譯、編譯高級語言程序(低級)匯編/機器語言程序、高級語言編程源程序編譯目標(biāo)程序輸入運行系統(tǒng)輸出、編譯系統(tǒng))=、編譯運行系統(tǒng)、編譯系統(tǒng)、用高級語言編寫的源代碼、符合人類閱讀
5、習(xí)慣、符合人類語法定義、使用命名結(jié)構(gòu)(如變量和過程)、便于人類使用、難于機器執(zhí)行、匯編語言或機器代碼、硬件要求包括機器指令、 寄存器和未命名的內(nèi)存地址對于人類來說難以理解,對于人類來說難以使用,對于機器來說易于執(zhí)行,匯編代碼的優(yōu)化,非優(yōu)化代碼,優(yōu)化代碼,以及編譯器的基本原理。 編譯器的設(shè)計必須遵循兩個原則:等價原則:編譯器必須保持編譯程序的意義不變,而不違背原來的意義。這個原則是編譯器設(shè)計者和編譯器用戶之間契約的核心。實用原則:優(yōu)化執(zhí)行的編譯器必須以明確的方式優(yōu)化和改進(jìn)輸入程序,如代碼優(yōu)化,如何翻譯,分析綜合,分析,中間表達(dá),綜合,編譯程序的邏輯結(jié)構(gòu),詞法分析器,語法分析器,語義分析器,中間代
6、碼生成,代碼優(yōu)化程序,目標(biāo)代碼生成,信息表管理程序,錯誤檢查和處理程序,源代碼序列,目標(biāo)代碼替換,模塊分類,分析:詞法分析,語法分析, 語義分析綜合:中間代碼生成、代碼優(yōu)化、目標(biāo)代碼生成輔助:符號表管理、錯誤檢查和處理八個功能對應(yīng)八個模塊詞法分析器,也叫掃描器,完成詞法分析功能:詞法分析器從左到右掃描源程序(字符串)并將其轉(zhuǎn)換成單詞(令牌)串; 同時,查找詞法錯誤并管理標(biāo)識符注冊符號表。輸入:字符串輸出:(物種代碼,屬性值)在內(nèi)部表示屬性值標(biāo)記。輸入字符串:“位置=初始速率* 60”,即P,O,S,I,T,I,O,N,=,I,N,I,I,T,I,A,L、*,6,0,經(jīng)過詞法分析后,獲得以下To
7、ken):標(biāo)識符:位置,初始,速率賦值運算符:=加法運算符:乘法運算符:*:number:60,詞法分析,語法分析,語法分析器,Parser完成語法分析功能:Parser實現(xiàn)“將單詞分組為句子”,構(gòu)建分析樹,指出語法錯誤,并指導(dǎo)翻譯輸入:Token序列輸出:語法成分,賦值語句,標(biāo)識符,=,表達(dá)式,標(biāo)識符,*表達(dá)式,表達(dá)式,位置速率,數(shù)字, 60,位置=初始速率* 60,標(biāo)識符|=速率,語法分析,程序的語法結(jié)構(gòu)通常由遞歸規(guī)則定義:規(guī)則1:任意規(guī)則2:任意給定的和,那么下面也是表達(dá)式規(guī)則3:規(guī)則4: *:規(guī)則5:(),語法分析, 功能:分析語法分析器給出的語法單元的語義,以獲得標(biāo)識符的屬性:語義檢
8、查,如類型和范圍;子程序的靜態(tài)綁定,如操作合法性和數(shù)值范圍;代碼相對地址變量的靜態(tài)綁定;數(shù)據(jù)的相對地址;檢查是否有語義錯誤并獲取類型信息。類型檢查、語義分析、位置、=、速率、*、初始、60、位置、=、速率、*、初始、60、int 2實數(shù)、中間代碼可視為抽象機器上的程序,如GCC生成的中間代碼、Java Byte。重要特性:簡單標(biāo)準(zhǔn),機器無關(guān),易于從語義分析階段生成,易于翻譯成目標(biāo)代碼。中間代碼有許多表示形式。反向波蘭(后綴表達(dá)式)四重三重地址碼,最大三個操作數(shù)三重兩個地址碼,最大兩個操作數(shù)流控制和過程調(diào)用,中間代碼生成,中間代碼生成,示例:id1 id2*id3,后綴表示(反向波蘭符號)id1
9、id2id3 *前綴表示(波蘭符號)id1*id2id3,四重表示(三個地址碼)1 (*,id1,id2,T1) 2(,id3,T1,T2),三重表示1 (*,id2,id3) 2(,Id3) 其他類型的語句,例如printf(“hello”)x :=s(賦值)param x(參數(shù))調(diào)用F(函數(shù)調(diào)用),其中s是hello的地址,F(xiàn)是printf的地址,中間代碼優(yōu)化過程:對代碼執(zhí)行等效轉(zhuǎn)換,以提高執(zhí)行效率,即,提高運行速度,節(jié)省存儲空間,機器無關(guān)優(yōu)化,機器相關(guān)優(yōu)化,代碼優(yōu)化,機器無關(guān)優(yōu)化,根據(jù)優(yōu)化范圍分類,局部優(yōu)化,循環(huán)優(yōu)化, 全局優(yōu)化,優(yōu)化技術(shù),常量合并:常量操作在編譯過程中完成,例如,8個9
10、*4公共子表達(dá)式提取,33,360基本塊內(nèi)強度縮減代碼提取,機器相關(guān)優(yōu)化,寄存器利用,將公共量放入寄存器,為了減少對內(nèi)存的訪問次數(shù),根據(jù)算法對內(nèi)存訪問的要求,安排了MIMD,SIMD,SPMD,向量機和流水線機的存儲策略:緩存,并行存儲架構(gòu),減少訪問沖突, 根據(jù)運行算法劃分子任務(wù)(MPMD),即體系結(jié)構(gòu),生成目標(biāo)代碼,將中間代碼轉(zhuǎn)換為目標(biāo)機器上的機器指令代碼或匯編代碼,符號表,記錄符號及其相關(guān)屬性,如類型和范圍,對于進(jìn)程名,符號在詞法分析階段進(jìn)入符號表,其相關(guān)屬性應(yīng)在后續(xù)階段進(jìn)行補充。 浮動位置,初始,速率;符號表管理,當(dāng)遇到錯誤時,應(yīng)盡可能繼續(xù)相應(yīng)的階段。詞法分析:剩余的非單詞字符串,如3i
11、nt語義分析:語法結(jié)構(gòu)良好,但語義錯誤,如添加兩個標(biāo)識符,但它們的類型是數(shù)組和過程。錯誤處理、句子翻譯、編譯器組織、解析器、語義分析和代碼生成程序、詞法分析程序、目標(biāo)程序的排序、源程序、目標(biāo)程序、停止、啟動、編譯通過、根據(jù)系統(tǒng)資源狀態(tài)、運行目標(biāo)的要求等。編譯器可以被設(shè)計成許多每次通過可以對應(yīng)于該階段,或者它可以獨立于單次通過代碼。編譯的前端和后端,前端:與目標(biāo)機器無關(guān)的部分:與目標(biāo)機器、編譯器設(shè)計、設(shè)計目標(biāo)、目標(biāo)程序相關(guān)的部分,執(zhí)行速度快,編譯速度快,診斷能力強,可靠性高,可移植性和可擴展性強。如何實現(xiàn)編譯器?用可運行的代碼直接編譯太費力了!圖,代表語言翻譯的圖,源語言,表示語言,目標(biāo)語言,交
12、叉編譯/移植,問題1:在一臺機器上有一個C語言編譯器,這個編譯器能用來在B機器上實現(xiàn)C語言編譯器嗎?條件:機器語言編譯器(P1)目的:實現(xiàn)機器語言編譯器(P3),并使用本機編譯器。問題2:在A機上有一個C語言編譯器,現(xiàn)在有必要實現(xiàn)一個新的語言編譯器嗎?你能使用交叉編譯技術(shù)嗎?問題3:有沒有其他技術(shù)可以直接在一臺計算機上實現(xiàn)C語言編譯器?解決方案:編譯器的一個子集(P0人)使用匯編程序來處理這個程序,并得到P2(P2:可以直接運行)。編譯器(P3人)用P2編譯P3,得到P4。編譯器的自主開發(fā)技術(shù)采用編譯器自動生成器、詞法分析器自動生成器、詞法規(guī)則描述、詞法分析器(C程序)。輸入:詞法(正則表達(dá)式)識別動作(程序段)輸出:yylex()函數(shù),lex,自動解析器生成器,語法規(guī)則描述,解析器,(c程序),輸入:語法規(guī)則(生成)語義動作(程序段)輸出:yyparse()函數(shù),本章摘要,中間代碼生成,代碼優(yōu)化程序,目標(biāo)代碼生成,信息表管理程序,錯誤檢查和處理程序,源序列,目標(biāo)代碼生成,第1章摘要問題。什么是翻譯、編譯和解釋程序?他們之間有什么相似之處和不同之處?編譯器通常由哪些部分組成?它和編譯系統(tǒng)有什么區(qū)別?詞匯分析的輸入、輸出和主要功能是什么?解析的輸入、輸
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 具有振震雙控功能的模塊化層并聯(lián)橡膠支座及組合隔振(震)層研究
- 管理與護(hù)理管理學(xué)
- 倉庫人員安全意識提升方案
- 保護(hù)牙齒健康教案說課
- 腎挫傷患者的常規(guī)護(hù)理
- 超聲波泵技術(shù)解析與應(yīng)用
- 師德警示教育案例解析與應(yīng)用
- 《智能網(wǎng)聯(lián)汽車技術(shù)》課件-智能網(wǎng)聯(lián)汽車發(fā)展目標(biāo)的認(rèn)知
- 預(yù)防職業(yè)病危害課件
- 小學(xué)教師常規(guī)培訓(xùn)
- 實驗室培育鉆石行業(yè)技術(shù)發(fā)展趨勢報告
- 2025年領(lǐng)英大制造行業(yè)人才全球化報告-馬來西亞篇
- 專題:閱讀理解 30篇 中考英語高分提升之新題速遞第二輯【含答案+解析】
- 企業(yè)面試題目和答案大全
- 抖音房產(chǎn)直播課件
- 2025至2030中國近視眼治療儀市場競爭力剖析及企業(yè)經(jīng)營形勢分析報告
- 2025年高考化學(xué)試卷(廣東卷)(空白卷)
- 體育老師招聘試題及答案
- 自然生態(tài)探險之旅行業(yè)跨境出海項目商業(yè)計劃書
- 2025年北京市高考英語試卷真題(含答案解析)
- 西藏自治區(qū)拉薩市達(dá)孜區(qū)孜縣2025年七下英語期中質(zhì)量檢測模擬試題含答案
評論
0/150
提交評論