編譯程序概論精品課件_第1頁
編譯程序概論精品課件_第2頁
編譯程序概論精品課件_第3頁
編譯程序概論精品課件_第4頁
編譯程序概論精品課件_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、編譯程序概論第1頁,共21頁,2022年,5月20日,20點(diǎn)35分,星期二本課程學(xué)習(xí)任務(wù)編譯原理課程以介紹程序設(shè)計(jì)語言編譯程序構(gòu)造的基本原理和設(shè)計(jì)方法為教學(xué)目標(biāo)。通過本課程的學(xué)習(xí),一方面使學(xué)生掌握和理解編譯系統(tǒng)的結(jié)構(gòu)、工作流程以及編譯程序各組成部分的設(shè)計(jì)原理和實(shí)現(xiàn)技術(shù),獲得分析、設(shè)計(jì)、實(shí)現(xiàn)和維護(hù)編譯系統(tǒng)的初步能力;另一方面,通過學(xué)習(xí)編譯的理論和方法,提高學(xué)生對(duì)程序設(shè)計(jì)語言、操作系統(tǒng)、計(jì)算機(jī)原理和體系結(jié)構(gòu)等課程知識(shí)的綜合理解。 第2頁,共21頁,2022年,5月20日,20點(diǎn)35分,星期二編譯技術(shù)集中體現(xiàn)了計(jì)算機(jī)科學(xué)發(fā)展的重要成果與精華。ACM圖靈獎(jiǎng)是授予在計(jì)算機(jī)技術(shù)領(lǐng)域作出突出貢獻(xiàn)的科學(xué)家的最

2、高獎(jiǎng)勵(lì),自1966年設(shè)立以來,程序設(shè)計(jì)語言、編譯理論與方法的方面的得獎(jiǎng)成果約占總數(shù)的1/3。對(duì)于將來從事編譯系統(tǒng)設(shè)計(jì)工作的學(xué)生來說,編譯原理課程將為其打下堅(jiān)實(shí)的能力和知識(shí)基礎(chǔ);對(duì)于從事其它工作的學(xué)生,也能夠提高他們對(duì)計(jì)算機(jī)系統(tǒng)總體的認(rèn)識(shí)。此外,課程介紹的經(jīng)典的語言分析方法和工具,對(duì)于設(shè)計(jì)一些實(shí)用的工具和軟件,如自然語言理解、網(wǎng)絡(luò)信息處理、網(wǎng)絡(luò)協(xié)議的分析與實(shí)現(xiàn)等,都是必備的基礎(chǔ)。因此,編譯原理課程是高等學(xué)校培養(yǎng)計(jì)算機(jī)專業(yè)人才的核心課程。 本課程地位第3頁,共21頁,2022年,5月20日,20點(diǎn)35分,星期二教材教材:編譯原理,張素琴 等編著,清華大學(xué)出版社參考書目:編譯程序設(shè)計(jì)原理,杜淑敏 等

3、編著,北京大學(xué)出版社編譯原理教程,胡元義 等編著,西安電子科技大學(xué)出版社相關(guān)知識(shí):程序設(shè)計(jì)語言、計(jì)算機(jī)組成原理、數(shù)據(jù)結(jié)構(gòu)、匯編語言、離散數(shù)學(xué)、操作系統(tǒng)等。 第4頁,共21頁,2022年,5月20日,20點(diǎn)35分,星期二第1章 編譯程序概論教學(xué)要求:本章講解編譯程序、 解釋程序的基本概念,概述編譯過程,介紹編譯程序的邏輯結(jié)構(gòu)和編譯程序的組織形式。要求理解編譯程序、解釋程序和遍的基本概念;掌握編譯過程各階段的任務(wù)和編譯程序邏輯結(jié)構(gòu)及其各部分的基本功能。 教學(xué)重點(diǎn):編譯程序工作的基本過程及其各階段的基本任務(wù),編譯程序總體框架。第5頁,共21頁,2022年,5月20日,20點(diǎn)35分,星期二基本概念機(jī)器

4、語言:能夠被計(jì)算機(jī)的硬件系統(tǒng)直接執(zhí)行的指令程序。 匯編語言:將硬件指令用一些助記符表示。如ADD表示加法操作,SUB表示減法操作等等 高級(jí)語言:使用便于理解的自然語言。 第6頁,共21頁,2022年,5月20日,20點(diǎn)35分,星期二語言處理程序解釋程序(器):接受某種語言源程序,然后直接解釋執(zhí)行源程序。編譯程序(器):接受某種語言的源語 言程序后,將它改造成另一種邏輯上等價(jià)的目標(biāo)語言程序。 第7頁,共21頁,2022年,5月20日,20點(diǎn)35分,星期二需預(yù)處理的源程序預(yù)處理程序源程序編譯程序匯編程序裝配/連接編輯程序目標(biāo)匯編程序可再裝配的機(jī)器代碼絕對(duì)機(jī)器代碼可再裝配目標(biāo)文件高級(jí)語言程序的處理過

5、程第8頁,共21頁,2022年,5月20日,20點(diǎn)35分,星期二表 格 管 理詞法分析語法分析語義分析中間代碼生成代碼優(yōu)化目標(biāo)代碼生成出 錯(cuò) 處 理源程序目標(biāo)程序編譯的各個(gè)階段第9頁,共21頁,2022年,5月20日,20點(diǎn)35分,星期二詞法分析詞法分析的功能是從左到右讀入源程序的每個(gè)字符,對(duì)構(gòu)成源程序的字符流進(jìn)行掃描和分解,從而識(shí)別出一個(gè)個(gè)單詞(也叫單詞符號(hào)或符號(hào))。依據(jù):語言的構(gòu)詞規(guī)則。單詞:邏輯上緊密相連的一組字符,這些字符具有集體含義。如:標(biāo)識(shí)符、保留字(關(guān)鍵字或基本字)、算符、界符等。第10頁,共21頁,2022年,5月20日,20點(diǎn)35分,星期二語法分析語法分析的功給是將單詞序列分

6、解成各類語法短語(也叫語法單位,句子),確定整個(gè)輸入串是否構(gòu)成一個(gè)語法上正確的程序。依據(jù):語言的語法規(guī)則。第11頁,共21頁,2022年,5月20日,20點(diǎn)35分,星期二語句的表示:標(biāo)識(shí)符:=表達(dá)式 是語句。while (表達(dá)式) do 語句 if (表達(dá)式) then 語句 else 語句都是語句。第12頁,共21頁,2022年,5月20日,20點(diǎn)35分,星期二語義分析的功能是審查源程序有無語義錯(cuò)誤,為代碼生成階段收集類型信息。語義分析主要能識(shí)別的語義錯(cuò)誤有變量沒有聲明就使用,變量重復(fù)聲明,運(yùn)算對(duì)象類型是否匹配等等。語義分析第13頁,共21頁,2022年,5月20日,20點(diǎn)35分,星期二中間

7、代碼生成中間代碼:一種結(jié)構(gòu)簡單、含義明確的記號(hào)系統(tǒng)。原則:容易生成;容易將它翻譯成目標(biāo)代碼。如四元式:(運(yùn)算符,運(yùn)算對(duì)象1,運(yùn)算對(duì)象2,結(jié)果)將源程序生成一種內(nèi)部表示形式,這種內(nèi)部表示形式叫中間代碼。第14頁,共21頁,2022年,5月20日,20點(diǎn)35分,星期二如:源程序 sum := first + count * 10生成的四元式可以是:( inttoreal,10,-,t1 )( *,id3,t1,t2 )( +,id2,t2,t3 )( :=,t3,-,id1)id1id2id3第15頁,共21頁,2022年,5月20日,20點(diǎn)35分,星期二代碼優(yōu)化( inttoreal,10,-,

8、t1 )( *,id3,t1,t2 )( +,id2,t2,t3 )( :=,t3,-,id1)( *,id3,10.0,t2 )( +,id2,t2,id1 )( *,id3,10.0,t1 )( +,id2,t1,id1 )目的:使目標(biāo)代碼運(yùn)行時(shí)間較短,占用空間較小。第16頁,共21頁,2022年,5月20日,20點(diǎn)35分,星期二目標(biāo)代碼生成任務(wù):把中間代碼變換成特定機(jī)器上的絕對(duì)指令代碼或可重定位的指令代碼或匯編指令代碼。特點(diǎn):與硬件系統(tǒng)結(jié)構(gòu)和指令含義有關(guān),涉及到硬件系統(tǒng)功能部件的運(yùn)用、機(jī)器指令的選擇、各種數(shù)據(jù)類型變量的存儲(chǔ)空間分配以及寄存器和后緩寄存器的調(diào)度等。第17頁,共21頁,202

9、2年,5月20日,20點(diǎn)35分,星期二中間代碼:( *,id3,10.0,t1 ) ( +,id2,t1,id1 )源程序:sum := first + count * 10目標(biāo)代碼:MOVFid3,R2 MULF10.0,R2 MOVFid2,R1 ADDFR1,R2 MOVR1,id1第18頁,共21頁,2022年,5月20日,20點(diǎn)35分,星期二符號(hào)表用來記錄源程序中出現(xiàn)的標(biāo)識(shí)符,并收集每個(gè)標(biāo)識(shí)符的各種屬性信息。符號(hào)表是由若干記錄組成的數(shù)據(jù)結(jié)構(gòu),每個(gè)標(biāo)識(shí)符在表中有一條記錄,每條記錄有多個(gè)域,每個(gè)域記載標(biāo)識(shí)符的一個(gè)屬性。符號(hào)表管理第19頁,共21頁,2022年,5月20日,20點(diǎn)35分,星期二表 格 管 理 程 序詞法分析程序語法分析程序語義分析程序中間代碼生成程序代碼優(yōu)化程序目標(biāo)代碼生成程序出 錯(cuò) 處 理 程 序源程序目標(biāo)程序編譯程序的結(jié)構(gòu)第20頁,共21頁,2022年,5月20日,20點(diǎn)35分,星期二有關(guān)名詞:前端(front end):主要依賴于源語言而與目標(biāo)機(jī)器無關(guān)的編譯階段。如:詞法分析、語法分析、語義分析、中間代碼生成、部分優(yōu)化工作、與前端有關(guān)的出錯(cuò)處理工作和符號(hào)表管理工作。后端(back

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論