編譯原理和技術_第1頁
編譯原理和技術_第2頁
編譯原理和技術_第3頁
編譯原理和技術_第4頁
編譯原理和技術_第5頁
已閱讀5頁,還剩29頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

編譯原理和技術大連理工軟件學院江賀jianghe@課程簡介教材和參考書陳意云、張昱,編譯原理,高等教育出版社,2003Louden,K.C,《編譯原理及實踐(英文版)》.中信出版社AlfredV.Aho,RaviSethi,JeffreyD.Ullman,.《編譯原理技術與工具(英文版)》人民郵電出版社課程簡介編譯技術研究對象:編譯器的構造與分析編輯器源程序編譯器操作系統(tǒng)可執(zhí)行程序.exe解釋器中間代碼可執(zhí)行程序.exeC,C++,Pascal,Delphi,VC,BCJava,VB,BasicEdit,Word,Notepad,Vigcc,vc,bc31虛擬機集成開發(fā)環(huán)境課程簡介課程內(nèi)容介紹編譯器構造的一般原理和基本實現(xiàn)方法介紹的理論知識:形式語言和自動機理論、語法制導的定義和屬性文法、類型論等課程特點強調(diào)形式化描述技術強調(diào)對編譯原理和技術的宏觀理解,不把注意力分散到枝節(jié)算法,不偏向于某種源語言或目標機器課程簡介學習的意義它是計算機專業(yè)的核心課程。對編程語言的設計和實現(xiàn)有深刻的理解,有利于學習編程語言,知其然知其所以然。if(c==5)then…if(c=5)then…if(5==c)then…if(5=c)then…編譯器不報錯,但實際上錯了編譯器報錯課程簡介學習的意義從軟件工程看,編譯器是一個很好的實例,所介紹的概念和技術能應用到一般的軟件設計之中。編譯器也許是大家在本科階段分析最透徹的實例了。課程簡介學習的意義可以肯定地說,你們中的95%以上的人在一輩子的生涯中都沒有機會去實現(xiàn)一個真正的復雜語言的編譯器。但是每一個人都絕對遇到需要使用編譯技術的項目。 以下就是一些小的“編譯器”.課程簡介學習的意義普通計算器可編程計算器課程簡介學習的意義:聊天機器人自動聊天機器人課程簡介學習的意義各種數(shù)據(jù)庫查詢語言及專家系統(tǒng)select課程fromtable課程表where任課老師=江賀課程簡介學習的意義在計算機專業(yè)考研或者各大公司招聘時,必考內(nèi)容。在X86/Linux工作站上,以下兩個結構的size分別是20和16,為什么不一樣?typedefstruct_a{ typedefstruct_b{ char c1; charc1; long i; char c2; char c2; longi; doublef; doublef;}a; }b;課程簡介課程要求目標:師生共同努力,達國內(nèi)最好水平講課進度較快,平時不復習并加深理解,后面將聽不懂作業(yè)較多,要求獨立完成上機實驗,不要輕視閱讀PL/0編譯器,會有很大收獲第一章引論

翻譯器:把一種語言變換到另外一種語言的軟件。這兩種語言分別稱為源語言和目標語言。編譯器:一種翻譯器,它的目標語言比源語言低級。第一章引論

詞法分析器語法分析器語義分析器源程序中間代碼生成器代碼優(yōu)化器代碼生成器目標程序出錯管理器符號表管理器編譯器編譯器從邏輯上可以分成若干階段,每個階段把源程序從一種表示變換成另一種表示翻譯家詞法分析語法分析語義分析漢語文本英語文本生成英語文本改進日語文本生成日語文本出錯紀錄詞典第一章引論

符號表

positioninitialrate.........123詞法分析器id1:=id2+id3

*60position:=initial+rate*60詞典你們大工學子.........123詞法分析名詞1

動詞形容詞名詞2你們是優(yōu)秀的大工學子。詞法分析:源程序-〉詞法記號(token)流第一章引論

任何一個標識符都是表達式;任何一個數(shù)都是表達式;如果e1和e2都是表達式,那么

e1+e2e1

*

e2(e1)也都是表達式表達式表達式表達式標識符表達式表達式(initial)標識符(rate)數(shù)(60)*+語法分析:詞法記號(token)流-〉語法短語任何名詞都可以作賓語;如果e1和e2都是賓語,那么

e1和e2e1

與e2也都可以作賓語如果e1是定語,e2是賓語,那么e1e2也可以作賓語。賓語定語賓語形容詞(優(yōu)秀的)名詞(大工學子)第一章引論

語法分析器id1:=id2+id3

*60:=+*60id1id2id3語法分析:詞法記號(token)流-〉語法短語名詞1動詞形容詞名詞2語法分析(優(yōu)秀的)名詞(大工學子)賓語定語賓語形容詞語句謂語動詞(是)主語名詞(你們)第一章引論

語義分析器:=+*60id1id2id3:=+*60id1id2id3inttoreal語義分析:檢查程序的語義正確性,如類型檢查等你們是優(yōu)秀的大工學子你們是一個優(yōu)秀的大工學子。第一章引論

詞法分析器語法分析器語義分析器源程序中間代碼生成器代碼優(yōu)化器代碼生成器目標程序出錯管理器符號表管理器

前三個階段完成對源程序的分析第一章引論

中間代碼生成器temp1:=inttoreal(60)temp2:=id3*temp1temp3:=id2+temp2id1:=temp3:=+*60id1id2id3inttoreal(優(yōu)秀的)名詞(大工學子)賓語定語賓語形容詞語句謂語動詞(是)主語名詞(你們)英語文本生成YouaregoodDLUTers.第一章引論

代碼優(yōu)化器temp1:=inttoreal(60)temp2:=id3*temp1temp3:=id2+temp2id1:=temp3temp1:=id3*60.0id1:=id2+temp1YouaregoodDLUTers.英語文本改進Youareexcellent

DLUTers第一章引論

temp1:=id3*60.0id1:=id2+temp1代碼生成器MOVFid3,R2MULF#60.0,R2MOVFid2,R1ADDFR2,R1MOVFR1,id1日語文本生成Youareexcellent

DLUTers..#&*-+di&^%4dfsa第一章引論

詞法分析器語法分析器語義分析器源程序中間代碼生成器代碼優(yōu)化器代碼生成器目標程序出錯管理器符號表管理器

后三個階段對源程序進行綜合第一章引論

詞法分析器語法分析器語義分析器源程序中間代碼生成器代碼優(yōu)化器代碼生成器目標程序出錯管理器符號表管理器

第一章引論

詞法分析器語法分析器語義分析器源程序中間代碼生成器代碼優(yōu)化器代碼生成器目標程序出錯管理器符號表管理器

前端后端前端:依賴于源語言,獨立于目標機器。后端:依賴于目標機器,獨立于源語言。第一章引論

源程序目標機器1目標機器2目標機器3目標機器n編譯器不區(qū)分前端和后端的編譯器源程序目標機器1目標機器2目標機器3目標機器n編譯器前端編譯器后端區(qū)分前端和后端的編譯器第一章引論

詞法分析器語法分析器語義分析器源程序中間代碼生成器代碼優(yōu)化器代碼生成器目標程序出錯管理器符號表管理器遍編譯的幾個階段常用一遍(pass)掃描實現(xiàn),一遍掃描包括讀一個輸入文件和寫一個輸出文件。第一章引論

遍類比:刷墻藝術中的“遍”的概念網(wǎng)線水泥瓷磚任務:在一面墻上布置網(wǎng)線,并粉刷水泥,然后貼上瓷磚第一章引論

遍類比:刷墻藝術中的“遍”的概念方法一:第一遍:布上全部網(wǎng)線網(wǎng)線水泥瓷磚第一章引論

遍類比:刷墻藝術中的“遍”的概念方法一:第二遍:粉刷全部墻面

溫馨提示

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

最新文檔

評論

0/150

提交評論