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

下載本文檔

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

文檔簡(jiǎn)介

1、青島大學(xué)信息工程學(xué)院青島大學(xué)信息工程學(xué)院編譯原理與技術(shù)編譯原理與技術(shù)第第1章章 概論概論青島大學(xué)信息工程學(xué)院青島大學(xué)信息工程學(xué)院編譯原理與技術(shù)編譯原理與技術(shù)2主要內(nèi)容主要內(nèi)容u為什么學(xué)習(xí)編譯為什么學(xué)習(xí)編譯u什么叫編譯程序什么叫編譯程序 u編譯過程概述編譯過程概述u編譯程序的構(gòu)成編譯程序的構(gòu)成u與編譯有關(guān)的概念和技術(shù)與編譯有關(guān)的概念和技術(shù) u如何開發(fā)編譯程序如何開發(fā)編譯程序 u編譯系統(tǒng)以及其它相關(guān)程序編譯系統(tǒng)以及其它相關(guān)程序青島大學(xué)信息工程學(xué)院青島大學(xué)信息工程學(xué)院編譯原理與技術(shù)編譯原理與技術(shù)31.1 為什么學(xué)習(xí)編譯為什么學(xué)習(xí)編譯u編譯程序構(gòu)造的原理和技術(shù)一直屬于計(jì)算編譯程序構(gòu)造的原理和技術(shù)一直屬

2、于計(jì)算機(jī)科學(xué)必備的專業(yè)基礎(chǔ)知識(shí)。機(jī)科學(xué)必備的專業(yè)基礎(chǔ)知識(shí)。u是計(jì)算機(jī)科學(xué)中一個(gè)非常成功的分支,也是計(jì)算機(jī)科學(xué)中一個(gè)非常成功的分支,也是最早獲得成功的分支之一。是最早獲得成功的分支之一。u它所建立的理論、技術(shù)和方法值得深入研它所建立的理論、技術(shù)和方法值得深入研究和學(xué)習(xí)。究和學(xué)習(xí)。編譯構(gòu)造正確地建立了研究的問題領(lǐng)域和研編譯構(gòu)造正確地建立了研究的問題領(lǐng)域和研究方式。究方式。青島大學(xué)信息工程學(xué)院青島大學(xué)信息工程學(xué)院編譯原理與技術(shù)編譯原理與技術(shù)41.1 為什么學(xué)習(xí)編譯為什么學(xué)習(xí)編譯針對(duì)編譯程序構(gòu)造的某些部分已經(jīng)開發(fā)了標(biāo)針對(duì)編譯程序構(gòu)造的某些部分已經(jīng)開發(fā)了標(biāo)準(zhǔn)的形式化技術(shù),包括有限自動(dòng)機(jī)理論、上準(zhǔn)的形式化

3、技術(shù),包括有限自動(dòng)機(jī)理論、上下文無關(guān)文法、正規(guī)表達(dá)式、屬性文法、機(jī)下文無關(guān)文法、正規(guī)表達(dá)式、屬性文法、機(jī)器代碼描述、數(shù)據(jù)流分析方程式等。器代碼描述、數(shù)據(jù)流分析方程式等。 編譯程序包含許多普遍使用的數(shù)據(jù)結(jié)構(gòu)和算編譯程序包含許多普遍使用的數(shù)據(jù)結(jié)構(gòu)和算法,例如散列法(哈希算法)、棧機(jī)制、堆法,例如散列法(哈希算法)、棧機(jī)制、堆機(jī)制、垃圾收集、集合算法、表驅(qū)動(dòng)算法。機(jī)制、垃圾收集、集合算法、表驅(qū)動(dòng)算法。編譯程序的許多構(gòu)造技術(shù)已經(jīng)得到了廣泛的編譯程序的許多構(gòu)造技術(shù)已經(jīng)得到了廣泛的應(yīng)用。應(yīng)用。學(xué)習(xí)編譯原理和技術(shù)還有助于我們理解程序?qū)W習(xí)編譯原理和技術(shù)還有助于我們理解程序設(shè)計(jì)語(yǔ)言,編寫優(yōu)秀的軟件。設(shè)計(jì)語(yǔ)言,編

4、寫優(yōu)秀的軟件。 青島大學(xué)信息工程學(xué)院青島大學(xué)信息工程學(xué)院編譯原理與技術(shù)編譯原理與技術(shù)51.2 什么叫編譯程序什么叫編譯程序u概念概念翻譯程序或翻譯器是把一種語(yǔ)言(翻譯程序或翻譯器是把一種語(yǔ)言(源語(yǔ)言源語(yǔ)言)轉(zhuǎn)換成等價(jià)的另外一種語(yǔ)言(轉(zhuǎn)換成等價(jià)的另外一種語(yǔ)言(目標(biāo)語(yǔ)言目標(biāo)語(yǔ)言)的)的程序。程序。如果源語(yǔ)言是高級(jí)編程語(yǔ)言,目標(biāo)語(yǔ)言是機(jī)如果源語(yǔ)言是高級(jí)編程語(yǔ)言,目標(biāo)語(yǔ)言是機(jī)器代碼和匯編語(yǔ)言這樣的低級(jí)語(yǔ)言,這類翻器代碼和匯編語(yǔ)言這樣的低級(jí)語(yǔ)言,這類翻譯程序就叫做譯程序就叫做編譯程序編譯程序或或編譯器編譯器。 青島大學(xué)信息工程學(xué)院青島大學(xué)信息工程學(xué)院編譯原理與技術(shù)編譯原理與技術(shù)61.2 什么叫編譯程序什

5、么叫編譯程序編譯執(zhí)行方式:把源程序用編譯程序翻譯成編譯執(zhí)行方式:把源程序用編譯程序翻譯成機(jī)器可以執(zhí)行的目標(biāo)程序或目標(biāo)代碼,然后機(jī)器可以執(zhí)行的目標(biāo)程序或目標(biāo)代碼,然后才能接受輸入數(shù)據(jù)運(yùn)行。才能接受輸入數(shù)據(jù)運(yùn)行。 編譯程序源程序輸入數(shù)據(jù)目標(biāo)程序計(jì)算機(jī)系統(tǒng)計(jì)算機(jī)系統(tǒng)目標(biāo)程序運(yùn)行結(jié)果青島大學(xué)信息工程學(xué)院青島大學(xué)信息工程學(xué)院編譯原理與技術(shù)編譯原理與技術(shù)71.2 什么叫編譯程序什么叫編譯程序解釋程序:解釋程序不產(chǎn)生源程序的目標(biāo)代解釋程序:解釋程序不產(chǎn)生源程序的目標(biāo)代碼,而是對(duì)源程序逐條語(yǔ)句的分析,根據(jù)每碼,而是對(duì)源程序逐條語(yǔ)句的分析,根據(jù)每個(gè)語(yǔ)句的含義執(zhí)行產(chǎn)生結(jié)果。個(gè)語(yǔ)句的含義執(zhí)行產(chǎn)生結(jié)果。 解釋程序解釋

6、程序輸入數(shù)據(jù)源程序計(jì)算機(jī)系統(tǒng)計(jì)算機(jī)系統(tǒng)運(yùn)行結(jié)果青島大學(xué)信息工程學(xué)院青島大學(xué)信息工程學(xué)院編譯原理與技術(shù)編譯原理與技術(shù)81.3 編譯過程概述編譯過程概述u詞法分析詞法分析詞法分析的任務(wù)是逐步地掃描和分解構(gòu)成源詞法分析的任務(wù)是逐步地掃描和分解構(gòu)成源程序的字符串,識(shí)別出一個(gè)一個(gè)的單詞符號(hào)程序的字符串,識(shí)別出一個(gè)一個(gè)的單詞符號(hào)或符號(hào)?;蚍?hào)。編譯程序的詞法分析也叫編譯程序的詞法分析也叫詞法掃描詞法掃描或線或線性掃性掃描描。 計(jì)算機(jī)高級(jí)語(yǔ)言的單詞符號(hào)通常包括:標(biāo)識(shí)計(jì)算機(jī)高級(jí)語(yǔ)言的單詞符號(hào)通常包括:標(biāo)識(shí)符、關(guān)鍵字或基本字、標(biāo)點(diǎn)符號(hào)、常數(shù)、運(yùn)符、關(guān)鍵字或基本字、標(biāo)點(diǎn)符號(hào)、常數(shù)、運(yùn)算符、分隔符等類型。算符、分隔

7、符等類型。 青島大學(xué)信息工程學(xué)院青島大學(xué)信息工程學(xué)院編譯原理與技術(shù)編譯原理與技術(shù)91.3 編譯過程概述編譯過程概述符號(hào)符號(hào)類型類型while關(guān)鍵字(分隔符i標(biāo)識(shí)符運(yùn)算符100整常數(shù))分隔符sum標(biāo)識(shí)符=運(yùn)算符sum標(biāo)識(shí)符i標(biāo)識(shí)符+運(yùn)算符;分隔符例子例子1.1:while (i 100) sum = sum + i 詞法分析的結(jié)果識(shí)別出的單詞詞法分析的結(jié)果識(shí)別出的單詞 青島大學(xué)信息工程學(xué)院青島大學(xué)信息工程學(xué)院編譯原理與技術(shù)編譯原理與技術(shù)101.3 編譯過程概述編譯過程概述u語(yǔ)法分析語(yǔ)法分析語(yǔ)法分析的任務(wù)是在詞法分析基礎(chǔ)上,根據(jù)語(yǔ)法分析的任務(wù)是在詞法分析基礎(chǔ)上,根據(jù)語(yǔ)言的語(yǔ)法規(guī)則把單詞符號(hào)串分解成

8、各類語(yǔ)語(yǔ)言的語(yǔ)法規(guī)則把單詞符號(hào)串分解成各類語(yǔ)法單元(語(yǔ)法范疇、語(yǔ)法短語(yǔ))法單元(語(yǔ)法范疇、語(yǔ)法短語(yǔ))l例如例如“短語(yǔ)短語(yǔ)”、“子句子句”、“語(yǔ)句語(yǔ)句”、“程序程序段段”、“函數(shù)函數(shù)”和和“程序程序”等。等。語(yǔ)法分析是把線形序列的單詞符號(hào),根據(jù)語(yǔ)語(yǔ)法分析是把線形序列的單詞符號(hào),根據(jù)語(yǔ)言的語(yǔ)法規(guī)則,按照層次分解,結(jié)果通常表言的語(yǔ)法規(guī)則,按照層次分解,結(jié)果通常表示成語(yǔ)法示成語(yǔ)法分析樹分析樹。 青島大學(xué)信息工程學(xué)院青島大學(xué)信息工程學(xué)院編譯原理與技術(shù)編譯原理與技術(shù)111.3 編譯過程概述編譯過程概述例子例子1.1while (i 100) sum = sum + i 語(yǔ)法分析樹語(yǔ)法分析樹while語(yǔ)句分

9、隔符分隔符(分隔符)表達(dá)式表達(dá)式;表達(dá)式循環(huán)體語(yǔ)句運(yùn)算符賦值表達(dá)式變量常量100i變量表達(dá)式復(fù)合賦值運(yùn)算符+sum+=運(yùn)算符表達(dá)式變量i青島大學(xué)信息工程學(xué)院青島大學(xué)信息工程學(xué)院編譯原理與技術(shù)編譯原理與技術(shù)121.3 編譯過程概述編譯過程概述u語(yǔ)義分析和中間代碼生成語(yǔ)義分析和中間代碼生成語(yǔ)義分析的任務(wù)是檢查程序語(yǔ)義的正確性,語(yǔ)義分析的任務(wù)是檢查程序語(yǔ)義的正確性,解釋程序結(jié)構(gòu)的含義。解釋程序結(jié)構(gòu)的含義。檢查變量是否有定義,變量在使用前是否具檢查變量是否有定義,變量在使用前是否具有值,數(shù)值是否溢出等,其中的一個(gè)重要部有值,數(shù)值是否溢出等,其中的一個(gè)重要部分是進(jìn)行類型的檢查和轉(zhuǎn)換。分是進(jìn)行類型的檢查和

10、轉(zhuǎn)換。 語(yǔ)義分析完成之后,編譯程序通常就依據(jù)語(yǔ)語(yǔ)義分析完成之后,編譯程序通常就依據(jù)語(yǔ)言的語(yǔ)義規(guī)則、利用語(yǔ)法制導(dǎo)技術(shù)把源程序言的語(yǔ)義規(guī)則、利用語(yǔ)法制導(dǎo)技術(shù)把源程序翻譯成某種中間代碼。翻譯成某種中間代碼。 青島大學(xué)信息工程學(xué)院青島大學(xué)信息工程學(xué)院編譯原理與技術(shù)編譯原理與技術(shù)131.3 編譯過程概述編譯過程概述中間代碼是一種定義明確、便于處理、獨(dú)立中間代碼是一種定義明確、便于處理、獨(dú)立于計(jì)算機(jī)硬件的記號(hào)系統(tǒng),可以認(rèn)為是一種于計(jì)算機(jī)硬件的記號(hào)系統(tǒng),可以認(rèn)為是一種抽象機(jī)的程序。其中一類是三地址代碼,很抽象機(jī)的程序。其中一類是三地址代碼,很象機(jī)器的匯編語(yǔ)言象機(jī)器的匯編語(yǔ)言 Lbegin:if i 100

11、goto Lbodygoto LendLbody:t1 := sum + isum := t1t2 := i + 1i := t2goto LbeginLend:青島大學(xué)信息工程學(xué)院青島大學(xué)信息工程學(xué)院編譯原理與技術(shù)編譯原理與技術(shù)141.3 編譯過程概述編譯過程概述u中間代碼優(yōu)化中間代碼優(yōu)化主要任務(wù)是對(duì)前一階段產(chǎn)生的中間代碼進(jìn)行主要任務(wù)是對(duì)前一階段產(chǎn)生的中間代碼進(jìn)行等價(jià)變換,以便產(chǎn)生速度快、空間小的目標(biāo)等價(jià)變換,以便產(chǎn)生速度快、空間小的目標(biāo)代碼。代碼。 Lbegin:if i 100 goto Lbodygoto LendLbody:sum := sum + ii := i + 1goto L

12、beginLend:青島大學(xué)信息工程學(xué)院青島大學(xué)信息工程學(xué)院編譯原理與技術(shù)編譯原理與技術(shù)151.3 編譯過程概述編譯過程概述u目標(biāo)代碼生成目標(biāo)代碼生成目標(biāo)代碼生成的主要任務(wù)是把(經(jīng)過優(yōu)化處目標(biāo)代碼生成的主要任務(wù)是把(經(jīng)過優(yōu)化處理的)中間代碼翻譯成特定的機(jī)器指令或匯理的)中間代碼翻譯成特定的機(jī)器指令或匯編程序。編程序。這個(gè)階段的工作依賴于計(jì)算機(jī)的硬件結(jié)構(gòu)和這個(gè)階段的工作依賴于計(jì)算機(jī)的硬件結(jié)構(gòu)和指令系統(tǒng),主要涉及到機(jī)器指令的選擇、各指令系統(tǒng),主要涉及到機(jī)器指令的選擇、各種類型變量存儲(chǔ)空間的分配,以及寄存器的種類型變量存儲(chǔ)空間的分配,以及寄存器的分配和調(diào)度,等等。分配和調(diào)度,等等。 青島大學(xué)信息工程

13、學(xué)院青島大學(xué)信息工程學(xué)院編譯原理與技術(shù)編譯原理與技術(shù)161.3 編譯過程概述編譯過程概述u目標(biāo)代碼生成目標(biāo)代碼生成MOV #100, R0/ 把常數(shù)100存入寄存器R0MOV i, R1/ 把變量i的值存入寄存器R1MOVsum,R2 / 把變量m的值存入寄存器R2Lbegin:CMP R1, R0 / 比較R1和R0的值,結(jié)果存入狀態(tài)寄 存器CTJ Lend/ 狀態(tài)寄存器CT1或2,即R1R0,程序轉(zhuǎn)入單元Lend ADDR1, R2/ 把寄存器R1加R2,結(jié)果送入R2INCR1/ 寄存器R1的值加1JLbegin/ 無條件轉(zhuǎn)移到地址LbeginLend:青島大學(xué)信息工程學(xué)院青島大學(xué)信息工程

14、學(xué)院編譯原理與技術(shù)編譯原理與技術(shù)171.4 編譯程序的構(gòu)成編譯程序的構(gòu)成 符號(hào)表管理錯(cuò)誤處理詞法分析器語(yǔ)法分析器語(yǔ)義分析與中間代碼生器代碼優(yōu)化器目標(biāo)代碼生成器目標(biāo)代碼單詞符號(hào)源程序語(yǔ)法單元中間代碼中間代碼青島大學(xué)信息工程學(xué)院青島大學(xué)信息工程學(xué)院編譯原理與技術(shù)編譯原理與技術(shù)181.4 編譯程序的構(gòu)成基本功能編譯程序的構(gòu)成基本功能詞法分析器,又叫掃描器,對(duì)輸入的源程序執(zhí)行詞法詞法分析器,又叫掃描器,對(duì)輸入的源程序執(zhí)行詞法分析工作,輸出單詞符號(hào)序列。分析工作,輸出單詞符號(hào)序列。語(yǔ)法分析器,又叫分析器,對(duì)單詞符號(hào)序列進(jìn)行語(yǔ)法語(yǔ)法分析器,又叫分析器,對(duì)單詞符號(hào)序列進(jìn)行語(yǔ)法分析,識(shí)別出各類語(yǔ)法單元,判斷輸

15、入的符號(hào)串是否分析,識(shí)別出各類語(yǔ)法單元,判斷輸入的符號(hào)串是否構(gòu)成語(yǔ)法正確的構(gòu)成語(yǔ)法正確的“程序程序”。語(yǔ)義分析與中間代碼生成器,對(duì)語(yǔ)法正確的各類程序語(yǔ)義分析與中間代碼生成器,對(duì)語(yǔ)法正確的各類程序單元進(jìn)行語(yǔ)義分析,并把它們翻譯成一定形式的中間單元進(jìn)行語(yǔ)義分析,并把它們翻譯成一定形式的中間代碼。代碼。代碼優(yōu)化器,執(zhí)行對(duì)中間代碼的優(yōu)化處理,以提高代代碼優(yōu)化器,執(zhí)行對(duì)中間代碼的優(yōu)化處理,以提高代碼的執(zhí)行效率。碼的執(zhí)行效率。目標(biāo)代碼生成器,根據(jù)特定的機(jī)器把中間代碼翻譯成目標(biāo)代碼,目標(biāo)代碼生成器,根據(jù)特定的機(jī)器把中間代碼翻譯成目標(biāo)代碼,并進(jìn)行優(yōu)化處理。并進(jìn)行優(yōu)化處理。青島大學(xué)信息工程學(xué)院青島大學(xué)信息工程學(xué)

16、院編譯原理與技術(shù)編譯原理與技術(shù)191.4 編譯程序的構(gòu)成輔助功能編譯程序的構(gòu)成輔助功能符號(hào)表管理:把編譯程序中的各種符號(hào)合理符號(hào)表管理:把編譯程序中的各種符號(hào)合理地組織和管理,方便符號(hào)信息的添加、查詢、地組織和管理,方便符號(hào)信息的添加、查詢、更新和刪除。更新和刪除。錯(cuò)誤診斷和報(bào)告錯(cuò)誤診斷和報(bào)告 :有效地識(shí)別、診斷、分析:有效地識(shí)別、診斷、分析和報(bào)告程序中的各種錯(cuò)誤。和報(bào)告程序中的各種錯(cuò)誤。分類:語(yǔ)法錯(cuò)誤(詞法錯(cuò)誤和句法錯(cuò)誤)和分類:語(yǔ)法錯(cuò)誤(詞法錯(cuò)誤和句法錯(cuò)誤)和語(yǔ)義錯(cuò)誤這兩類。語(yǔ)義錯(cuò)誤這兩類。青島大學(xué)信息工程學(xué)院青島大學(xué)信息工程學(xué)院編譯原理與技術(shù)編譯原理與技術(shù)201.5 其它與編譯有關(guān)的概念

17、和技術(shù)其它與編譯有關(guān)的概念和技術(shù) u遍(趟)遍(趟)在編譯的具體實(shí)現(xiàn)時(shí),往往根據(jù)不同的源語(yǔ)在編譯的具體實(shí)現(xiàn)時(shí),往往根據(jù)不同的源語(yǔ)言、設(shè)計(jì)要求、使用對(duì)象以及編譯程序所在言、設(shè)計(jì)要求、使用對(duì)象以及編譯程序所在宿主機(jī)的內(nèi)存等硬件條件,將編譯過程組織宿主機(jī)的內(nèi)存等硬件條件,將編譯過程組織為若干遍(趟)。一個(gè)編譯程序最終經(jīng)過幾為若干遍(趟)。一個(gè)編譯程序最終經(jīng)過幾遍完成,就稱為幾遍編譯。遍完成,就稱為幾遍編譯。 青島大學(xué)信息工程學(xué)院青島大學(xué)信息工程學(xué)院編譯原理與技術(shù)編譯原理與技術(shù)211.5 其它與編譯有關(guān)的概念和技術(shù)其它與編譯有關(guān)的概念和技術(shù) u編譯的前端和后端編譯的前端和后端 編譯前端只依賴于源程序,

18、獨(dú)立于目標(biāo)計(jì)算機(jī)。編譯編譯前端只依賴于源程序,獨(dú)立于目標(biāo)計(jì)算機(jī)。編譯前端的工作包括詞法分析、語(yǔ)法分析、語(yǔ)義分析、中前端的工作包括詞法分析、語(yǔ)法分析、語(yǔ)義分析、中間代碼生成及其優(yōu)化,文法錯(cuò)誤的處理和符號(hào)表的組間代碼生成及其優(yōu)化,文法錯(cuò)誤的處理和符號(hào)表的組織也在編譯前端完成??椧苍诰幾g前端完成。編譯后端的工作主要是目標(biāo)代碼的生成和優(yōu)化,獨(dú)立編譯后端的工作主要是目標(biāo)代碼的生成和優(yōu)化,獨(dú)立于源程序,完全依賴于目標(biāo)機(jī)器和中間代碼。于源程序,完全依賴于目標(biāo)機(jī)器和中間代碼。把編譯程序分成前端和后端已經(jīng)成為目前編譯程序的把編譯程序分成前端和后端已經(jīng)成為目前編譯程序的設(shè)計(jì)實(shí)踐,其顯著優(yōu)點(diǎn)是,可以優(yōu)化配置不同的編

19、譯設(shè)計(jì)實(shí)踐,其顯著優(yōu)點(diǎn)是,可以優(yōu)化配置不同的編譯程序組合,實(shí)現(xiàn)編譯的重用,保持語(yǔ)言與機(jī)器的獨(dú)立程序組合,實(shí)現(xiàn)編譯的重用,保持語(yǔ)言與機(jī)器的獨(dú)立性。性。 青島大學(xué)信息工程學(xué)院青島大學(xué)信息工程學(xué)院編譯原理與技術(shù)編譯原理與技術(shù)221.5 其它與編譯有關(guān)的概念和技術(shù)其它與編譯有關(guān)的概念和技術(shù)u編譯程序的分類編譯程序的分類 診斷型編譯程序:專門用于幫助程序的開發(fā)診斷型編譯程序:專門用于幫助程序的開發(fā)和調(diào)試,它們系統(tǒng)地分析程序,發(fā)現(xiàn)程序中和調(diào)試,它們系統(tǒng)地分析程序,發(fā)現(xiàn)程序中的錯(cuò)誤,智能地校正一些錯(cuò)誤。的錯(cuò)誤,智能地校正一些錯(cuò)誤。優(yōu)化型編譯程序:這類編譯程序著重于提高優(yōu)化型編譯程序:這類編譯程序著重于提高目

20、標(biāo)代碼的時(shí)空效率,使得產(chǎn)生的目標(biāo)代碼目標(biāo)代碼的時(shí)空效率,使得產(chǎn)生的目標(biāo)代碼既占用較少的存儲(chǔ)空間,又運(yùn)行的快。既占用較少的存儲(chǔ)空間,又運(yùn)行的快。青島大學(xué)信息工程學(xué)院青島大學(xué)信息工程學(xué)院編譯原理與技術(shù)編譯原理與技術(shù)231.5 其它與編譯有關(guān)的概念和技術(shù)其它與編譯有關(guān)的概念和技術(shù)交叉型編譯程序:運(yùn)行目標(biāo)程序的計(jì)算機(jī)和交叉型編譯程序:運(yùn)行目標(biāo)程序的計(jì)算機(jī)和運(yùn)行編譯程序的計(jì)算機(jī)的型號(hào)不相同運(yùn)行編譯程序的計(jì)算機(jī)的型號(hào)不相同 。利用編譯前端和后端的技術(shù),可以設(shè)計(jì)與目利用編譯前端和后端的技術(shù),可以設(shè)計(jì)與目標(biāo)機(jī)無關(guān)的編譯程序,利用編譯后端就可以標(biāo)機(jī)無關(guān)的編譯程序,利用編譯后端就可以改變目標(biāo)計(jì)算機(jī),這樣編譯方便移

21、植,稱為改變目標(biāo)計(jì)算機(jī),這樣編譯方便移植,稱為可變目標(biāo)型編譯程序??勺兡繕?biāo)型編譯程序。 青島大學(xué)信息工程學(xué)院青島大學(xué)信息工程學(xué)院編譯原理與技術(shù)編譯原理與技術(shù)241.6 編譯技術(shù)和軟件工具編譯技術(shù)和軟件工具u語(yǔ)法制導(dǎo)編輯器語(yǔ)法制導(dǎo)編輯器 這類工具運(yùn)用程序語(yǔ)言的語(yǔ)法知識(shí),在用戶這類工具運(yùn)用程序語(yǔ)言的語(yǔ)法知識(shí),在用戶編寫程序的時(shí)候按照詞法和語(yǔ)法分析的信息編寫程序的時(shí)候按照詞法和語(yǔ)法分析的信息提供智能的幫助,包括自動(dòng)地提供關(guān)鍵字及提供智能的幫助,包括自動(dòng)地提供關(guān)鍵字及其匹配的關(guān)鍵字、左右括號(hào)的配對(duì)、對(duì)象的其匹配的關(guān)鍵字、左右括號(hào)的配對(duì)、對(duì)象的屬性和操作,等等。屬性和操作,等等。 u程序調(diào)試工具程序調(diào)試

22、工具 調(diào)試的目的是根據(jù)程序的異常,追蹤和確定調(diào)試的目的是根據(jù)程序的異常,追蹤和確定錯(cuò)誤在程序中的具體位置,并且修改程序,錯(cuò)誤在程序中的具體位置,并且修改程序,消除錯(cuò)誤。消除錯(cuò)誤。 青島大學(xué)信息工程學(xué)院青島大學(xué)信息工程學(xué)院編譯原理與技術(shù)編譯原理與技術(shù)251.6 編譯技術(shù)和軟件工具編譯技術(shù)和軟件工具u程序測(cè)試工具程序測(cè)試工具 程序測(cè)試是為了發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過程,程序測(cè)試是為了發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過程,基于編譯技術(shù)的測(cè)試輔助工具可以分為靜態(tài)基于編譯技術(shù)的測(cè)試輔助工具可以分為靜態(tài)分析器和動(dòng)態(tài)測(cè)試工具。分析器和動(dòng)態(tài)測(cè)試工具。u程序理解工具程序理解工具 在軟件測(cè)試、軟件維護(hù)以及軟件的再向工程在軟件測(cè)試

23、、軟件維護(hù)以及軟件的再向工程和逆向工程等工作中,需要人們理解和分析和逆向工程等工作中,需要人們理解和分析程序,得到需要的軟件信息,這類工具稱為程序,得到需要的軟件信息,這類工具稱為程序理解工具。程序理解工具。 青島大學(xué)信息工程學(xué)院青島大學(xué)信息工程學(xué)院編譯原理與技術(shù)編譯原理與技術(shù)261.7 如何開發(fā)編譯程序如何開發(fā)編譯程序 u手工編寫編譯程序手工編寫編譯程序 u編譯程序的自動(dòng)生成技術(shù)編譯程序的自動(dòng)生成技術(shù) u編譯程序的自展技術(shù) Ln=LL0L1.青島大學(xué)信息工程學(xué)院青島大學(xué)信息工程學(xué)院編譯原理與技術(shù)編譯原理與技術(shù)271.7 如何開發(fā)編譯程序如何開發(fā)編譯程序 u編譯程序的移植技術(shù)編譯程序的移植技術(shù)用宿主計(jì)算機(jī)上的高級(jí)語(yǔ)言編寫一個(gè)能在另用宿主計(jì)算機(jī)上的高級(jí)語(yǔ)言編寫一個(gè)能在另外類型目標(biāo)機(jī)上運(yùn)行的編譯程序外類型目標(biāo)機(jī)上運(yùn)行的編譯程序 A BHH KMA BK圖1.7 把機(jī)器H上的編譯移植到機(jī)器K上 青島大學(xué)信息工程學(xué)院青島大學(xué)信息工程學(xué)院編譯原理與技術(shù)編譯原理與技術(shù)281.7 編譯系統(tǒng)以及其它相關(guān)程序編譯系統(tǒng)以及其它相關(guān)程序 編譯系統(tǒng) 預(yù)處理器源程序 編輯器 修改后的源程序 匯編程序 可重定位的目標(biāo)程序 可執(zhí)行的目標(biāo)程序 函數(shù)庫(kù) 可重定位的目標(biāo)文件 連接器與加載器特性器調(diào)試器解釋器配置與版本控制器源程序 匯編器編譯器 源程序 青島大學(xué)信息

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論