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

下載本文檔

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

文檔簡(jiǎn)介

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

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

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

符號(hào)表

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

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

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

任何一個(gè)標(biāo)識(shí)符都是表達(dá)式;任何一個(gè)數(shù)都是表達(dá)式;如果e1和e2都是表達(dá)式,那么

e1+e2e1

*

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

e1和e2e1

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

語(yǔ)法分析器id1:=id2+id3

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

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

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

前三個(gè)階段完成對(duì)源程序的分析第一章引論

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

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

DLUTers第一章引論

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

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

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

后三個(gè)階段對(duì)源程序進(jìn)行綜合第一章引論

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

第一章引論

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

前端后端前端:依賴于源語(yǔ)言,獨(dú)立于目標(biāo)機(jī)器。后端:依賴于目標(biāo)機(jī)器,獨(dú)立于源語(yǔ)言。第一章引論

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

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

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

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

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

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(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)論