第3章-程序設(shè)計(jì)語(yǔ)言課件_第1頁(yè)
第3章-程序設(shè)計(jì)語(yǔ)言課件_第2頁(yè)
第3章-程序設(shè)計(jì)語(yǔ)言課件_第3頁(yè)
第3章-程序設(shè)計(jì)語(yǔ)言課件_第4頁(yè)
第3章-程序設(shè)計(jì)語(yǔ)言課件_第5頁(yè)
已閱讀5頁(yè),還剩39頁(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)介

第3章

程序設(shè)計(jì)語(yǔ)言學(xué)習(xí)目標(biāo)了解計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言、編譯原理的基本知識(shí)。掌握程序的概念、高級(jí)語(yǔ)言程序設(shè)計(jì)的基本內(nèi)容。第3章

程序設(shè)計(jì)語(yǔ)言3.1程序設(shè)計(jì)語(yǔ)言概述

3.1.1程序的概念

程序就是能夠?qū)崿F(xiàn)特定功能的一組指令序列的集合。其中,指令可以是機(jī)器指令、匯編語(yǔ)言指令,也可以是高級(jí)語(yǔ)言的語(yǔ)句命令,甚至還可以是用自然語(yǔ)言描述的運(yùn)算、操作命令等。3.1.2計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言

程序設(shè)計(jì)語(yǔ)言使得人們能夠與計(jì)算機(jī)進(jìn)行交流,其種類非常繁多,總來(lái)說(shuō)可以分為低級(jí)語(yǔ)言和高級(jí)語(yǔ)言兩大類。低級(jí)語(yǔ)言

低級(jí)語(yǔ)言包括兩種類型:機(jī)器語(yǔ)言和匯編語(yǔ)言。

(1)機(jī)器語(yǔ)言機(jī)器語(yǔ)言面向機(jī)器,可由CPU直接識(shí)別和執(zhí)行。不同的機(jī)器能夠識(shí)別的機(jī)器語(yǔ)言是不相同的。機(jī)器指令都是用一串0、1構(gòu)成的二進(jìn)制位串來(lái)表示的,也稱為機(jī)器碼。用機(jī)器指令編寫(xiě)的程序稱為機(jī)器語(yǔ)言程序,或稱為目標(biāo)程序,這是計(jì)算機(jī)能夠直接執(zhí)行的程序。缺點(diǎn):機(jī)器語(yǔ)言難以閱讀和理解,編寫(xiě)和修改都比較困難,

而且通用性較差。3.1.2計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言(2)匯編語(yǔ)言匯編指令是由英文單詞或其縮寫(xiě)符號(hào)表示的指令。也稱為符號(hào)指令或助記符,比機(jī)器指令便于記憶、閱讀和理解。大多數(shù)情況下,一條匯編指令直接對(duì)應(yīng)一條機(jī)器指令,少數(shù)對(duì)應(yīng)幾條機(jī)器指令。匯編語(yǔ)言,也稱符號(hào)語(yǔ)言,它使用字母、數(shù)字和英文單詞或其縮寫(xiě)符號(hào)來(lái)替代由0、1構(gòu)成的指令操作碼、寄存器、數(shù)據(jù)和地址等信息,這樣編寫(xiě)出來(lái)的程序就稱為符號(hào)語(yǔ)言程序或匯編語(yǔ)言程序。3.1.2計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言匯編與匯編程序計(jì)算機(jī)無(wú)法“識(shí)別”和“執(zhí)行”匯編語(yǔ)言,因而需要能將用匯編語(yǔ)言編寫(xiě)的程序“翻譯”成機(jī)器語(yǔ)言的特殊程序。這種特殊程序稱為匯編語(yǔ)言翻譯程序、匯編程序或匯編器。程序員手工編寫(xiě)的程序統(tǒng)稱為源程序,用匯編語(yǔ)言編寫(xiě)的源程序稱為匯編語(yǔ)言源程序,匯編程序?qū)⒃闯绦蚍g得到的機(jī)器語(yǔ)言程序稱為目標(biāo)程序,翻譯的過(guò)程稱為匯編。3.1.2計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言反匯編程序用于將目標(biāo)代碼程序轉(zhuǎn)換成相應(yīng)的匯編語(yǔ)言源程序,這一過(guò)程稱為反匯編。反匯編主要用于識(shí)別源程序代碼,常用的調(diào)試工具程序DEBUG就提供了反匯編功能。3.1.2計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言低級(jí)語(yǔ)言的特點(diǎn)

都與特定的計(jì)算機(jī)硬件系統(tǒng)緊密相關(guān),來(lái)自于特定系統(tǒng)的指令系統(tǒng),可移植性差。對(duì)程序員專業(yè)知識(shí)要求高,要求對(duì)計(jì)算機(jī)硬件的結(jié)構(gòu)和工作原理非常熟悉。每條指令的功能比較單一,程序員編寫(xiě)源程序時(shí)指令非常繁瑣。由于直接針對(duì)特定硬件編程,所以最終的可執(zhí)行代碼非常精煉,并且執(zhí)行效率高。

兩者主要的區(qū)別在于:機(jī)器語(yǔ)言編寫(xiě)的程序無(wú)需翻譯或編譯,CPU能夠直接識(shí)別和執(zhí)行。而匯編語(yǔ)言源程序必須經(jīng)過(guò)匯編才能得到目標(biāo)程序。3.1.2計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言高級(jí)語(yǔ)言(1)高級(jí)語(yǔ)言的產(chǎn)生一個(gè)問(wèn)題:如何解決程序的可移植性,即:程序員編寫(xiě)的源程序如何可以從一臺(tái)計(jì)算機(jī)很容易地轉(zhuǎn)到另一臺(tái)計(jì)算機(jī)上工作。所謂高級(jí)語(yǔ)言是一種由表達(dá)各種意義的“詞”和“公式”,按照一定的“語(yǔ)法規(guī)則”來(lái)編寫(xiě)程序的語(yǔ)言,又稱為程序設(shè)計(jì)語(yǔ)言或算法語(yǔ)言。高級(jí)語(yǔ)言之所以“高級(jí)”,就是因?yàn)樗钩绦騿T可以完全不用與計(jì)算機(jī)的硬件打交道,可以不必了解機(jī)器的指令系統(tǒng)。

3.1.2計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言(2)高級(jí)語(yǔ)言的常見(jiàn)類型FORTRAN語(yǔ)言BASIC語(yǔ)言COBOL語(yǔ)言PASCAL語(yǔ)言C語(yǔ)言C++和C#語(yǔ)言其他高級(jí)語(yǔ)言基于視窗類操作系統(tǒng)的,如VisualBasic、VisualC++、Delphi、PowerBuilder、Java等3.1.2計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言高級(jí)語(yǔ)言的優(yōu)點(diǎn):語(yǔ)句的功能強(qiáng),程序員編寫(xiě)的源程序比較短,容易學(xué)習(xí),使用方便,可移植性較好,便于推廣和交流。高級(jí)語(yǔ)言的缺點(diǎn):編譯程序比匯編程序復(fù)雜,而且編譯出來(lái)的目標(biāo)程序往往效率不高,長(zhǎng)度和運(yùn)行時(shí)間都較長(zhǎng)。因此,在很多對(duì)時(shí)間要求比較高的系統(tǒng),如某些實(shí)時(shí)控制系統(tǒng)或者大型計(jì)算機(jī)控制系統(tǒng)中,低級(jí)語(yǔ)言(主要是匯編語(yǔ)言)仍然得到了一定的應(yīng)用。3.1.2計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言3.1.3高級(jí)語(yǔ)言程序設(shè)計(jì)的基本內(nèi)容高級(jí)語(yǔ)言程序設(shè)計(jì)依賴于各自特定的語(yǔ)句和語(yǔ)法。語(yǔ)句是構(gòu)成源程序的基本單位。語(yǔ)法是指管理語(yǔ)言結(jié)構(gòu)和語(yǔ)句的一組規(guī)則。1.高級(jí)語(yǔ)言的基本符號(hào)

高級(jí)語(yǔ)言的語(yǔ)法成分都是由基本符號(hào)組成的,分為單字符和多字符兩種。單字符基本符號(hào)由單個(gè)字符組成。字母:英文字母A~Z、a~z,共52個(gè)符號(hào)。數(shù)字:0~9,共10個(gè)數(shù)字符號(hào)。

特殊字符:+、-、*、/、^、=、(、)、>、<、,、空格等。

多字符基本符號(hào)由兩個(gè)或兩個(gè)以上的字符組成,如:GOTO(轉(zhuǎn)移)、<=(小于或等于)、AND(與)等。3.1.3高級(jí)語(yǔ)言程序設(shè)計(jì)的基本內(nèi)容2.高級(jí)語(yǔ)言的基本元素

基本元素由基本符號(hào)組成,可分為數(shù)、邏輯值、名字、標(biāo)號(hào)和字符串等5大類:數(shù):由0~9共10個(gè)基本數(shù)字和其他一些符號(hào)(如小數(shù)點(diǎn)“.”、正負(fù)號(hào)“+、-”及指數(shù)符號(hào)“E”等所構(gòu)成。邏輯值:由真(True)和假(False)兩個(gè)值構(gòu)成。3.1.3高級(jí)語(yǔ)言程序設(shè)計(jì)的基本內(nèi)容

名字

由字符組成,一般約定名字的開(kāi)頭是字母或者下劃線,其后可為字母或數(shù)字,如XYZ、A123、_C等。名字可用來(lái)定義常量、變量、函數(shù)、過(guò)程或子程序的名字,故也稱為標(biāo)識(shí)符。標(biāo)號(hào)是在高級(jí)語(yǔ)言中的程序語(yǔ)句前所加的一個(gè)名字,主要用來(lái)指示程序可能的轉(zhuǎn)移方向。字符串

由一串字符所組成。字符串中的多個(gè)字符常放在一對(duì)單引號(hào)或雙引號(hào)中,作為常量來(lái)使用。3.1.3高級(jí)語(yǔ)言程序設(shè)計(jì)的基本內(nèi)容3.基本的數(shù)據(jù)類型通常,一種高級(jí)語(yǔ)言都會(huì)定義一些基本的數(shù)據(jù)類型,通常包括整數(shù)類型、實(shí)數(shù)類型和字符類型等。高級(jí)語(yǔ)言中,在使用變量前,必須為每個(gè)變量分配所需的內(nèi)存單元空間。因此,幾乎任何一種高級(jí)語(yǔ)言都要求變量必須先定義后使用。定義變量實(shí)質(zhì)上就是根據(jù)變量的類型來(lái)為其分配一定大小的空間,并可通過(guò)變量名找到該空間的起始地址。3.1.3高級(jí)語(yǔ)言程序設(shè)計(jì)的基本內(nèi)容4.結(jié)構(gòu)數(shù)據(jù)類型

結(jié)構(gòu)數(shù)據(jù)類型是在基本數(shù)據(jù)類型的基礎(chǔ)上構(gòu)造出來(lái)的數(shù)據(jù)類型。如數(shù)組、結(jié)構(gòu)體、枚舉、集合、隊(duì)列和堆棧等:數(shù)組類型

數(shù)組是若干個(gè)相同類型數(shù)據(jù)的集合。如:inta[10];用戶自定義的結(jié)構(gòu)體類型。

結(jié)構(gòu)體是隸屬于同一個(gè)事物的多個(gè)不同類型數(shù)據(jù)的集合,用來(lái)表示具有若干個(gè)屬性的一個(gè)事物。3.1.3高級(jí)語(yǔ)言程序設(shè)計(jì)的基本內(nèi)容StructStudent{intSno;charSname[20];charSex[2];intAge;};5.運(yùn)算符與表達(dá)式

高級(jí)語(yǔ)言的表達(dá)式由基本符號(hào)、基本元素和各種數(shù)據(jù)通過(guò)運(yùn)算符連接而成,運(yùn)算符大致包括以下幾類:邏輯運(yùn)算:與、或、非、異或等。算術(shù)運(yùn)算:加、減、乘、除、取模等。數(shù)據(jù)比較:大于、小于、等于、不等于等。數(shù)據(jù)傳送:輸入、輸出、賦值等。

通過(guò)各種運(yùn)算符連接而得到的表達(dá)式有以下幾種:算術(shù)表達(dá)式:表達(dá)式的運(yùn)算結(jié)果是數(shù)值。關(guān)系運(yùn)算表達(dá)式:表達(dá)式的運(yùn)算結(jié)果是邏輯值。字符串表達(dá)式:表達(dá)式的運(yùn)算結(jié)果是字符串。3.1.3高級(jí)語(yǔ)言程序設(shè)計(jì)的基本內(nèi)容6.語(yǔ)句語(yǔ)句是構(gòu)成高級(jí)語(yǔ)言源程序的基本單位,是由基本元素、運(yùn)算符、表達(dá)式等組成。任何一種高級(jí)語(yǔ)言往往都支持賦值、條件判斷、循環(huán)、輸入輸出等語(yǔ)句。程序員利用這些語(yǔ)句的結(jié)合,能夠很方便地編制出功能強(qiáng)大的程序。3.1.3高級(jí)語(yǔ)言程序設(shè)計(jì)的基本內(nèi)容7.庫(kù)函數(shù)和用戶自定義的函數(shù)為了支持用戶編寫(xiě)出功能強(qiáng)大的源程序,幾乎所有的高級(jí)語(yǔ)言都為用戶提供了豐富的庫(kù)函數(shù),這些庫(kù)函數(shù)能夠?qū)崿F(xiàn)某些特定的功能,比如數(shù)學(xué)函數(shù)。在源程序中,用戶也可以自己定義自己的函數(shù)(子程序或過(guò)程),以便以后可以反復(fù)調(diào)用這些代碼集合。3.1.3高級(jí)語(yǔ)言程序設(shè)計(jì)的基本內(nèi)容

8.注釋任何一種程序設(shè)計(jì)語(yǔ)言都強(qiáng)調(diào)注釋的重要性。在源程序中添加必要的注釋不僅有助于閱讀程序,更重要的是在修改程序時(shí),可以幫助程序員理解原始程序。3.1.3高級(jí)語(yǔ)言程序設(shè)計(jì)的基本內(nèi)容9.程序設(shè)計(jì)風(fēng)格(詳見(jiàn)4.2.4節(jié))養(yǎng)成良好的編程習(xí)慣,有助于提高程序的正確性、可讀性、可維護(hù)性和可用性。

10.高級(jí)語(yǔ)言程序的運(yùn)行

使用高級(jí)語(yǔ)言編寫(xiě)程序的一般過(guò)程可以歸納為以下幾個(gè)步驟:使用文本編輯工具,逐條編寫(xiě)源程序的語(yǔ)句。保存源程序的文件時(shí),文件的后綴名與所用的高級(jí)語(yǔ)言有關(guān)。編譯源程序文件,生成目標(biāo)文件,文件后綴名通常為obj。鏈接目標(biāo)文件,生成可執(zhí)行文件,文件后綴名通常為exe。在計(jì)算機(jī)上運(yùn)行可執(zhí)行程序,并進(jìn)行調(diào)試和維護(hù)3.1.3高級(jí)語(yǔ)言程序設(shè)計(jì)的基本內(nèi)容3.1.4高級(jí)語(yǔ)言的數(shù)據(jù)表示手段1.常量常量也稱常數(shù),是一種恒定的、不隨時(shí)間改變的數(shù)值或數(shù)據(jù)項(xiàng)。2.變量變量是指在程序的運(yùn)行過(guò)程中可以發(fā)生改變的量,是程序中數(shù)據(jù)的臨時(shí)存放場(chǎng)所。3.?dāng)?shù)據(jù)類型用來(lái)約束數(shù)據(jù)的解釋。4.表達(dá)式表達(dá)式是操作符、操作數(shù)和標(biāo)點(diǎn)符號(hào)組成的序列,其目的是用來(lái)說(shuō)明一個(gè)計(jì)算過(guò)程。3.2聲明和類型1.聲明聲明用于說(shuō)明每個(gè)標(biāo)識(shí)符的含義,而不必為每個(gè)標(biāo)識(shí)符預(yù)留存儲(chǔ)空間。預(yù)留存儲(chǔ)空間的聲明稱為定義。2.類型類型檢查是利用一組邏輯規(guī)則來(lái)推理一個(gè)程序在運(yùn)行時(shí)刻的行為。3.3類型系統(tǒng)

類型系統(tǒng)用于定義如何將程序語(yǔ)言中的數(shù)值和表達(dá)式歸類為許多不同的類型、如何操作這些類型、這些類型如何互相作用。類型系統(tǒng)提供的主要功能如下:

安全性。

最佳化。

可讀性。

抽象化。3.4編譯原理

3.4.1編譯程序概述高級(jí)語(yǔ)言編寫(xiě)的源程序需要“翻譯”成計(jì)算機(jī)能夠識(shí)別的機(jī)器語(yǔ)言,機(jī)器才能執(zhí)行,這種“翻譯”程序被稱為語(yǔ)言處理程序。將高級(jí)語(yǔ)言編寫(xiě)的源程序翻譯為機(jī)器語(yǔ)言程序的方式有解釋和編譯。(1)解釋解釋程序在處理源程序時(shí),執(zhí)行方式類似于日常生活中的“同聲翻譯”。解釋一句、執(zhí)行一句,立即產(chǎn)生運(yùn)行結(jié)果。解釋程序不產(chǎn)生目標(biāo)代碼,不能脫離其語(yǔ)言環(huán)境獨(dú)立執(zhí)行。解釋程序?qū)υ闯绦虻慕忉寛?zhí)行比編譯程序產(chǎn)生的目標(biāo)代碼程序的執(zhí)行速度要慢。3.4編譯程序概述(2)編譯編譯程序是把高級(jí)語(yǔ)言程序(源程序)作為一個(gè)整體來(lái)處理,首先將程序源代碼“翻譯”成目標(biāo)代碼(機(jī)器語(yǔ)言),編譯后與系統(tǒng)提供的代碼庫(kù)鏈接,形成—個(gè)完整的可執(zhí)行的機(jī)器語(yǔ)言程序(目標(biāo)程序代碼)。目標(biāo)程序可以脫離其語(yǔ)言環(huán)境獨(dú)立執(zhí)行,使用比較方便、效率較高。相應(yīng)地,由于每次執(zhí)行之前必須通過(guò)編譯得到可執(zhí)行程序,所以,可執(zhí)行程序一旦需要修改,必須先修改源代碼,再重新編譯生成新的目標(biāo)文件(*.obj)才能執(zhí)行。3.4編譯程序概述

編譯程序的功能如圖所示:3.4編譯程序概述

編譯程序的工作過(guò)程

如圖:3.4編譯程序概述3.4.2詞法分析其任務(wù)是從左到右一個(gè)字符、一個(gè)字符地對(duì)源程序進(jìn)行掃描,讀入源程序,對(duì)構(gòu)成源程序的字符流進(jìn)行掃描和分解,通過(guò)詞法分析從而識(shí)別出一個(gè)個(gè)單詞(指邏輯上緊密相連的一組字符)。

例1對(duì)表達(dá)式:position:=initial+rate*100;進(jìn)行詞法分析,得到以下結(jié)果:

單詞類型

單詞值標(biāo)識(shí)符1(id1) position

算符(賦值) :=

標(biāo)識(shí)符2(id2) initial

算符(加) +

標(biāo)識(shí)符3(id3) rate

算符(乘) *

整數(shù) 100

分號(hào) ;3.4.2詞法分析3.4.3語(yǔ)法分析

語(yǔ)法分析是編譯過(guò)程的第二個(gè)階段,任務(wù)是在詞法分析的基礎(chǔ)上將單詞序列分解成各類語(yǔ)法短語(yǔ),如“程序”、“語(yǔ)句”、“表達(dá)式”等等。一般這種語(yǔ)法短語(yǔ)也稱為語(yǔ)法單位。例2對(duì)語(yǔ)句:position:=initial+rate*100;進(jìn)行語(yǔ)法分析。需要用到的語(yǔ)法規(guī)則:<賦值語(yǔ)句>::=<標(biāo)識(shí)符>“:=”<表達(dá)式>;<表達(dá)式>::=<表達(dá)式>“+”<表達(dá)式>

<表達(dá)式>::=<表達(dá)式>“*”<表達(dá)式>

<表達(dá)式>::=“(”<表達(dá)式>“)”

<表達(dá)式>::=<標(biāo)識(shí)符>

<表達(dá)式>::=<整數(shù)>

<表達(dá)式>::=<實(shí)數(shù)>3.4.3語(yǔ)法分析依據(jù)源程序的語(yǔ)法規(guī)則把源程序的單詞序列組成語(yǔ)法短語(yǔ)(表示成語(yǔ)法樹(shù)),見(jiàn)圖:3.4.3語(yǔ)法分析position:=initial+rate*100;;把id1:=id2+id3*N轉(zhuǎn)換成語(yǔ)法樹(shù)見(jiàn)圖:3.4.3語(yǔ)法分析position:=initial+rate*100;3.4.4語(yǔ)義處理

在詞法分析程序和語(yǔ)法分析程序?qū)υ闯绦虻恼Z(yǔ)法結(jié)構(gòu)進(jìn)行分析之后,一般要由語(yǔ)法分析程序調(diào)用相應(yīng)的語(yǔ)義子程序進(jìn)行語(yǔ)義處理。編譯過(guò)程中的語(yǔ)義處理實(shí)現(xiàn)兩個(gè)功能:審查每個(gè)語(yǔ)法結(jié)構(gòu)的靜態(tài)語(yǔ)義,即驗(yàn)證語(yǔ)法結(jié)構(gòu)合法的程序是否真正有意義,有時(shí)把這個(gè)工作稱為靜態(tài)語(yǔ)義分析或靜態(tài)審查。如果靜態(tài)語(yǔ)義正確,則語(yǔ)義處理要執(zhí)行真正的翻譯,要么生成程序的一種中間表示形式(中間代碼),要么生成實(shí)際的目標(biāo)代碼。例3對(duì)表達(dá)式:position:=initial+rate*100;作語(yǔ)義處理。Programp();Varrate:real;Varinitial:real;Varposition:real;…position:=initial+rate*100;3.4.4語(yǔ)義處理進(jìn)行類型審查語(yǔ)義分析階段審查源程序有無(wú)語(yǔ)義錯(cuò)誤,為代碼生成階段收集類型信息。比如語(yǔ)義分析的一個(gè)工作是進(jìn)行類型審查,審查每個(gè)算符是否具有語(yǔ)言規(guī)范允許的運(yùn)算對(duì)象,當(dāng)不符合語(yǔ)言規(guī)范時(shí),編譯程序亦報(bào)告錯(cuò)誤。如有的編譯程序要對(duì)實(shí)數(shù)用作數(shù)組下標(biāo)的情況報(bào)告錯(cuò)誤。又比如某些語(yǔ)言規(guī)定運(yùn)算對(duì)象可被強(qiáng)制,那么當(dāng)二目運(yùn)算施于整型和實(shí)型時(shí),編譯程序應(yīng)將整型轉(zhuǎn)換成實(shí)型而不能認(rèn)為是源程序的錯(cuò)誤。3.4.4語(yǔ)義處理3.4.5中間代碼生成所謂“中間代碼”是一種結(jié)構(gòu)簡(jiǎn)單、含義明確的記號(hào)系統(tǒng),其復(fù)雜性介于源程序語(yǔ)言和機(jī)器語(yǔ)言。中間代碼生成不是編譯過(guò)程的必需階段,但采用中間代碼可將與機(jī)器相關(guān)的某些實(shí)現(xiàn)細(xì)節(jié)置于目標(biāo)代碼生成階段處理,并且可對(duì)中間代碼進(jìn)行優(yōu)化,從而最終提高目標(biāo)代碼的質(zhì)量。采用三地址指令表示t2:=id3*t1,會(huì)得到以下的結(jié)果:(*id3t1t2)表達(dá)式id1:=id2+id3*100按照三地址指令生成中間代碼:(1)(inttoreal 100 - t1)(2)(* id3 t1 t2)(3)(+ id2 t2 t3)(4)(:= t3 - id1)3.4.5中間代碼生成3.4.6中間代碼優(yōu)化中間代碼優(yōu)化的任務(wù)是對(duì)中間代碼進(jìn)行變換或進(jìn)行改造,目的是使生成的目標(biāo)代碼更為高效,即節(jié)省時(shí)間和空間。常用的優(yōu)化技術(shù)有刪除多余運(yùn)算、強(qiáng)度削弱、變換循環(huán)控制條件、合并已知量與復(fù)寫(xiě)傳播、刪除無(wú)用賦值等。3.4.5節(jié)的中間

溫馨提示

  • 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)論