編譯原理第1講引論_第1頁
編譯原理第1講引論_第2頁
編譯原理第1講引論_第3頁
編譯原理第1講引論_第4頁
編譯原理第1講引論_第5頁
已閱讀5頁,還剩113頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第一講引論

?課程信息

?編譯程序概述

?高級語言的語法描述

§1.課程信息

一、課程名稱:編譯原理

基本內(nèi)容是介紹編譯程序構(gòu)造的基本原理、

方法和技術(shù),包括詞法分析、語法分析、

語義分析與中間代碼產(chǎn)生、代碼優(yōu)化及目

標(biāo)代碼產(chǎn)生等。簡言之,就是介紹如何將

源程序翻譯成目標(biāo)代碼程序。

CompilerPrinciples3

二、課程性質(zhì):專業(yè)基礎(chǔ)課,必修

。編譯程序(器)出現(xiàn)于上世紀(jì)50年代后期

(第一個高級語言1958年)

?60年代?70年代是研究高峰期

60年代中期開始在高校中開設(shè)課程

。80年代開始作為計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)的

必修基礎(chǔ)課程

CompilerPrinciples4

三、課程特點(diǎn):

充分體現(xiàn)了計(jì)算學(xué)科中抽象、理論和設(shè)計(jì)三個學(xué)科

形態(tài)

。該課程涉及多門課程的內(nèi)容綜合運(yùn)用,涉及面廣,內(nèi)

容龐雜,學(xué)習(xí)艱難

9程序設(shè)計(jì)語言、計(jì)算機(jī)體系結(jié)構(gòu)、語言理論及算法等;

9離散數(shù)學(xué)、數(shù)據(jù)結(jié)構(gòu)'

。該課程涉及的原理、方法和技術(shù)具有十分普遍的意

小每一個計(jì)算機(jī)科學(xué)與技術(shù)工作者的職業(yè)生涯中反復(fù)用到,

“享用一輩子”

《這兒接受的訓(xùn)練很難在其他地方獲得:

如:抽象與形式化方法、局部與全局優(yōu)化方法、構(gòu)造技術(shù)、

證明方法等

CompilerPrinciples5

四、學(xué)習(xí)該課程的意義

?編譯程序是計(jì)算機(jī)系統(tǒng)不可缺少的重要組成

部分

力對程序設(shè)計(jì)語言的設(shè)計(jì)與實(shí)現(xiàn)能有更深刻的理

9對程序設(shè)計(jì)語言有關(guān)理論有所了解

。從宏觀上把握程序設(shè)計(jì)語言—掌握了編譯原

理后,就不能再說:“某語言未學(xué)過,所以不

會”

i有助于快速理解、定位和解決程序調(diào)試與運(yùn)行

中出現(xiàn)的問題

CompilerPrinciples6

。編譯方法與技術(shù)有著廣泛應(yīng)用

《安全技術(shù)、程序理解、軟件逆向工程、應(yīng)用軟件與軟

件工具開發(fā)、軟件測試與驗(yàn)證等

。編譯課程蘊(yùn)含著計(jì)算學(xué)科中解決問題的思路、抽

象和方法,這些與高等數(shù)學(xué)一樣,使你“享用一

輩子”

課程所涉及的內(nèi)容至今非?;钴S

9自然語言的翻譯

9軟件移植

9網(wǎng)絡(luò)安全」

9形式化方法

力形式語義學(xué)等

CompilerPrinciples7

鑒于以上所述,作為計(jì)算機(jī)科

學(xué)與技術(shù)專業(yè)的學(xué)生必須學(xué)習(xí)和

掌握編譯原理這門課程,當(dāng)然由

于其綜合性、處理問題的復(fù)雜性

等,學(xué)習(xí)起來有一定難度,這就

需要艱苦奮斗的精神和良好的學(xué)

習(xí)方法I

CompilerPrinciples8

五、學(xué)習(xí)方法

*編譯程序的構(gòu)造是一個龐大而復(fù)雜的系統(tǒng)工

程,無論是概念還是理論、方法,對初學(xué)者

來說許多都是新的,學(xué)習(xí)起來會感到困難大

一些,這一點(diǎn)必須有充分認(rèn)識,為此建議學(xué)

習(xí)方法上注意以下幾點(diǎn):

CompilerPrinciples9

1.課前預(yù)習(xí),課堂認(rèn)真聽講,課后復(fù)習(xí)加深理

解,特別要經(jīng)常有意識地將前后內(nèi)容聯(lián)系起

來融會貫通。因?yàn)榫幾g程序是一個龐大的程

序系統(tǒng),講解過程必須“分而治之”,這也

是人們處理復(fù)雜問題的基本方法,這就要求

大家在學(xué)習(xí)過程中,始終以處理過程為主線,

把前后聯(lián)系起來考慮。

CompilerPrinciples10

2.理論聯(lián)系實(shí)際——親自動手,構(gòu)造一個

演示性編譯程序,至少要完成掃描器和

語法分析器,以及語法制導(dǎo)翻譯產(chǎn)生中

間代碼

3,認(rèn)真完成作業(yè),進(jìn)一步鞏固并加深理解

所學(xué)知識

4.特別要下功夫認(rèn)真學(xué)習(xí)如何從實(shí)際問題

進(jìn)行抽象并形式化,最終建立實(shí)際問題

的模型(上升為理性認(rèn)識),并借助模

型進(jìn)一步設(shè)計(jì)實(shí)現(xiàn),這將對你的能力提

高大有益處

CompilerPrinciples11

六、教材選擇:

《程序設(shè)計(jì)語言編譯原理》(第3版)

國防工業(yè)出版社陳火旺等

1.內(nèi)容詳實(shí)豐富,理論與技術(shù)相結(jié)合

2.新版充分考慮了新的研究成果——屬

性文法、LR分析法、全局優(yōu)化等

3.大多數(shù)院校一直采用,碩士入學(xué)考試

參考書

4,較為全面介紹了編譯程序構(gòu)造的基本

原理、方法與技術(shù)

CompilerPrinciples12

七、考試

平時成績:30%

期終考試成績:70%

八、參考書目

1.《編譯原理》陳意云張昱高教出版社

2.《編譯原理》李建中姜守旭譯

A.V.Aho,RavSethi,J.D.Ullman著

機(jī)械工業(yè)出版社

3.《編譯原理及實(shí)踐》廿馮博琴馮嵐等譯

KennethC.Louden著)

機(jī)械工業(yè)出版社

CompilerPrinciples13

§2.編譯程序概述

,翻譯程序(Translator)

能夠把一種語言程序(稱為源語言

程序)轉(zhuǎn)換成邏輯上等價(jià)的另一種

語言程序(稱為目標(biāo)語言程序)的

程序

Compilerprinciples14

?任何非機(jī)器語言程序都需要翻譯程序

。翻譯程序的工作就是進(jìn)行等價(jià)變換(映射)

兩個程序邏輯上等價(jià)是指對相同輸入得到

相同的輸出

CompilerPrinciples15

1.匯編程序(Assembler)

把匯編語言程序轉(zhuǎn)變?yōu)闄C(jī)器語言程序的翻譯程序

2.解釋程序(Interpreter)

把源程序作為輸入接收,邊解釋邊執(zhí)行的翻譯程序

r源程序解釋>結(jié)果

數(shù)據(jù)程序

CompilerPrinciples16

3.編譯程序

將高級語言程序轉(zhuǎn)變?yōu)榈图壵Z言程序的翻譯程序

源程序

CompilerPrinciples17

。編譯程序又可根據(jù)用途和側(cè)重點(diǎn)的不同,

進(jìn)一步分類為:

①診斷編譯程序(DiagnosticCompiler)

專門用于幫助程序開發(fā)和調(diào)試的編譯程序

②優(yōu)化編譯程序(OptimizingCompiler)

著重于提高目標(biāo)代碼效率的編譯程序

③交叉編譯程序(CrossCompiler)

能夠產(chǎn)生不同于其宿主機(jī)機(jī)器代碼的編譯程序

④可變目標(biāo)編譯程序(Retargetablecompiler)

無須重寫與機(jī)器無關(guān)部分就能改變目標(biāo)機(jī)的

編譯程序

CompilerPrinciples18

二、與編譯程序相關(guān)的程序

本講義只介紹編譯程序(器)構(gòu)造的基本原

理、方法與技術(shù),但在一個完整的語言開發(fā)

(或稱程序設(shè)計(jì))環(huán)境中,除了編譯器這一I

主要工具外,還需要其他一些工具,如編輯

器、連接器、裝入程序等?,F(xiàn)代計(jì)算機(jī)系統(tǒng)

常將這些相互獨(dú)立的程序設(shè)計(jì)工具集成起來,

構(gòu)成一個集成化的程序開發(fā)環(huán)境,以提高程

序設(shè)計(jì)效率和程序的質(zhì)量。如TurboC、

VisualC++等語言環(huán)境都是集成化的程序設(shè)

計(jì)環(huán)境。而Ada語言的集成環(huán)境是這方面的

J

如Ada語言的集成環(huán)境是一個分層的程序開發(fā)環(huán)境

這兒要強(qiáng)調(diào)的是:盡

管本課程只介紹編譯

的基本理論、方法和

技術(shù),但這些基本理

論、方法與技術(shù)對其

他工具的構(gòu)造同樣起

作用!

CompilerPrinciples21

1編輯器(Editor)

.完成源程序輸入、編輯并產(chǎn)生標(biāo)準(zhǔn)文件

(如ASCII文件)的程序。

近來已與編譯器和其他程序捆綁進(jìn)一個交

互開發(fā)環(huán)境——IDE中

盡管這樣的編輯器仍生成標(biāo)準(zhǔn)文件,但會

轉(zhuǎn)向正被討論的程序設(shè)計(jì)語言的格式或結(jié)

構(gòu)(稱為基于結(jié)構(gòu)的),且已包含了編譯

器的某些操作;因此在程序編寫時而不是

編譯時就可得知錯誤,甚至也可調(diào)用編譯

CompilerPrinciples22

2,預(yù)處理程序(Preprocessor)

在真正翻譯開始之前產(chǎn)生編譯程序的輸入

的程序

。處理宏及注釋:宏是被經(jīng)常使用的較長結(jié)

構(gòu)的縮寫

處理文件包含:把頭文件包含到程序正文

中(如C的文件包含includev..?.h>)

?!袄斫狻鳖A(yù)處理器:把現(xiàn)代控制流和數(shù)據(jù)

結(jié)構(gòu)機(jī)制添加到比較老式的語言中

。語言擴(kuò)充:通過大量的內(nèi)部宏定義來增強(qiáng)

語言的能力,如Equel語言是一種嵌套在C

,樟司中的數(shù)據(jù)庫查詢語言

CompilerPrmciples二2323

K連接程序(Linker)——又稱為連接編輯器。

將分別在不同的目標(biāo)文件中編譯(或匯編)

的代碼、所用標(biāo)準(zhǔn)庫函數(shù)的代碼以及操作

系統(tǒng)提供的資源(如存儲分配程序及輸入/

輸出設(shè)備)收集到一個可直接執(zhí)行的文件

中的程序

4.裝配程序(Loader)

完成程序的裝入和連接編輯兩項(xiàng)功能。

裝入過程包括讀入可重定位機(jī)器代碼、修

改可重定位地址、并將修改后的指令和數(shù)

據(jù)放到內(nèi)存的適當(dāng)位置。

裝入程序使得可執(zhí)行代碼更加靈活

CompilerPrinciples24

5,調(diào)試程序(Debugger)

可在被編譯了的程序中判定執(zhí)行錯誤的程

?它經(jīng)常與編譯程序一起放在IDE中

。運(yùn)行一個帶有調(diào)試程序的程序與直接執(zhí)行

不同,這是因?yàn)檎{(diào)試程序保存著所有的或

大多數(shù)源代碼信息,它可以在預(yù)先指定的

位置(斷點(diǎn)Breakpoint)暫停執(zhí)行,并提供

有關(guān)信息(已調(diào)用的函數(shù)、變量名的當(dāng)前

值等)

CompilerPrinciples25

6.其他有關(guān)的還有

。描述器(Profiler)——執(zhí)行中搜集目標(biāo)程序行

為統(tǒng)計(jì)的程序

項(xiàng)目管理程序(ProjectManager)-----如

Unix系統(tǒng)中的SCCS(源代碼控制系統(tǒng))和

RCS(修正控制系統(tǒng))和匯編程序等

綜上所述可給出一個“語言處理系統(tǒng)”的圖示:

CompilerPrinciples26

源程序梗概

_______1_______

預(yù)處理器

源程序

編全器

目標(biāo)匯編程序

匯編器

可重定位機(jī)器代碼

____________+

裝載器/連接編輯器;一庫、可重定位目標(biāo)程序

可執(zhí)行機(jī)器代碼

我們這個課只介紹編譯程序這一部分

CompilerPrinciples27

三、編譯過程與編譯程序結(jié)構(gòu)

1.編譯過程:

輸入---------編譯程序--------輸出

(高級語言源程序)(低級語言目標(biāo)程序)

編譯程序工作過程如下:

?識別出一個個的單詞

?分析句子的語法結(jié)構(gòu)

?分析句子的語義并進(jìn)行初步翻譯.

?對初步翻譯進(jìn)行優(yōu)化

?整理出目標(biāo)程序

對以上過程進(jìn)一步整理可得如下編譯程序結(jié)構(gòu)總框:

CompilerPrinciples

3.五個階段簡介

?第一階段:詞法分析——依據(jù)語言構(gòu)詞規(guī)

貝I」,識別出一個個單詞(符號)

?單詞種類

?基本字:for,if,while等、

?算符:+,一,X,/等、有窮性!

?界符:,;O等J

?標(biāo)識符:a123,pi等

無窮性

?常數(shù):9,36,486E6等

CompilerPrinciples30

?詞法分析工作由詞法分析器(或稱掃描

器)完成。

?掃描器輸出為等長度的單詞符號(二元

式)流。

?例:

(06,'Position')。l,-X06,'initial'X12,-X06,'rate')(13,—)(07,'60的二進(jìn)制')

CompilerPrinciples31

?第二階段:語法分?如:Position=initial+rate*60是——

析——依據(jù)語言的個“賦值表達(dá)式”(C語言中)

語法規(guī)則,把掃描

器提供的單詞符號

串分解成各種語法

單位(范疇),如

“短語”、“子Position

句”、“句子”乃

至“程序”。同時

進(jìn)行語法檢查,以

確定輸入串是否正

確,該工作是由語initial標(biāo)示符常數(shù)

法分析器完成的。

rate60

CompilerPrinciples32

?第三階段:語義分析與中間代碼產(chǎn)生——針對

各類不同的語法范疇,按語言的語義規(guī)則進(jìn)行

語義分析和初步翻譯工作,產(chǎn)生某種中間語言

形式的中間代碼(即一種結(jié)構(gòu)簡單,含義明確

的記號系統(tǒng))

該階段工作通常包括兩個方面的工作:

?對每種語法范疇進(jìn)行靜態(tài)語義檢查,包括:

?變量是否定義過.

?類型是否正確1

?是否用了。作除數(shù)等

CompilerPrinciples33

J?將語法范疇翻譯成某種形式的中間代碼,

如四元式:

OpARG1ARG2Result

*rate60T1

+initialT1T2

■T2Position

CompilerPrinciples34

?第四階段:優(yōu)化——對前階段產(chǎn)生的中間

代碼進(jìn)行加工變換,以期在最后階段能產(chǎn)

生出高效(節(jié)省時、空)的目標(biāo)代碼,這

一任務(wù)是由優(yōu)化器來完成的I

?根據(jù)優(yōu)化的范圍不同,可分為:

局部優(yōu)化,循環(huán)優(yōu)化和全局優(yōu)化

?一個循環(huán)優(yōu)化的例子:

循環(huán)語句為:For(k=1;k<=100;k++){M=l+10*k;N=J+10*k;}

⑴=1K(1)=IM

(2)J<10°K(9)⑵=JN

⑶*10KT1⑶=1K

(4)+IT1M(4)J<1。。K⑼

⑸*10KT2⑸+M10M

(6)+JT2N(6)+N10N

⑺+K1K⑺+K1K

(8)J(2)(8)J(4)

?優(yōu)化前用了兩個臨時工作單元(T1,T2),優(yōu)化后沒有用臨時單元

?優(yōu)化前循環(huán)體中要做300次加、200次乘,

就施簫循環(huán)體內(nèi)只做30。次加36

?第五階段:目標(biāo)代碼生成——把中間代碼

翻譯成目標(biāo)代碼

?顯然這階段要依賴于硬體系統(tǒng)結(jié)構(gòu)和指

令系統(tǒng)

?涉及存貯分配、寄存器調(diào)度

這一階段工作是由代碼生成器完成的

說明:

以上各階段(或稱工序)并不是截然分開

的,尤其編譯程序結(jié)構(gòu)十分復(fù)雜、體積相

當(dāng)龐大,所以有時人們把幾個階段的工作

有機(jī)地組合在一起、穿插進(jìn)行,構(gòu)成遍。

Compilerprinciples37

。遍(Pass):對源程序或源程序的中間代

碼從頭到尾掃描一次并做相應(yīng)處理加工

?分遍的好處是結(jié)構(gòu)清晰、節(jié)省內(nèi)存(每

遍都從外存獲取前一遍的結(jié)果作為開始,

工作結(jié)果仍記入外存,每遍幾乎可使用

全部內(nèi)存)

?分不分遍、如何分遍要視具體情況----

計(jì)算機(jī)內(nèi)存容量、源語言的繁簡、從事

編譯程序設(shè)計(jì)人員的情況等

CompilerPrinciples38

如最早的基本BASIC語言采用一遍掃描的編譯程序:

CompilerPrinciples39

又如PL/O編譯程序的結(jié)構(gòu)

PL/O源程序

目標(biāo)程序

CompilerPrinciples40

再如COBOL編譯程序采用了四遍掃描的編譯程序:

源U

詞法分析與

名等內(nèi)碼內(nèi)

碼生成器

1山I

CompilerPrinciples41

4.前端與后端:概念上講,編譯程序的五個階

)段可進(jìn)一步劃分為前端和后端:

?前端:主要由與源語言有關(guān)而與目標(biāo)機(jī)無

關(guān)的部分組成,包括詞法分析、語法分析、

語義分析和中間代碼產(chǎn)生。代碼優(yōu)化一般

也包含在前端。J

?后端:主要由與目標(biāo)機(jī)有關(guān)的部分組成,(

包括目標(biāo)代碼生成和與目標(biāo)機(jī)有關(guān)的優(yōu)化

等。

詳見下圖:

CompilerPrinciples42

前端后端

據(jù)

標(biāo)

標(biāo)

產(chǎn)

優(yōu)

優(yōu)

CompilerPrinciples43

?劃分前端和后端,就可以僅改寫后端

而生成不同目標(biāo)機(jī)上的目標(biāo)程序,當(dāng)然

也可考慮對不同語言僅稍加改變前端而

產(chǎn)生相同的中間代碼,經(jīng)同一后端生成

相同目標(biāo)機(jī)的目標(biāo)代碼。就目前來說,

針對相同中間代碼適應(yīng)不同目標(biāo)機(jī)的工

作較多,如Ada語言的APSE(Ada程序設(shè)

計(jì)環(huán)境)中使用的Diana中間代碼,Java

語言定義的虛擬機(jī)代碼---Bytecode中

間語言,都是定義良好的中間語言。

詳見下圖:

Compilerprinciples44

Java的傳統(tǒng)環(huán)境

編譯環(huán)境

Java源程序

(Java)

Java編譯器

Java字節(jié)碼

(本地或

網(wǎng)絡(luò)傳輸),

Java字節(jié)碼

(,class)

CompilerPrinciples45

5,表格與表格管理

?表格記錄源程序中的各類有用信息——名

字、函數(shù)、標(biāo)號、過程、數(shù)值等

?每個階段的工作都要與表格打交道:查、

填、改等

?表格的結(jié)構(gòu)與處理方法:統(tǒng)一的大表與分

類的小表

?統(tǒng)一大表NAMEINFORMATION

名字欄為主欄(關(guān)鍵字欄),信息欄又分

成若干子欄——種屬、類型等

CompilerPrinciples46

?分類小表:每類一張表,如:

?符號名表(SNT)X啞元實(shí)型

A數(shù)組整型...

?常數(shù)表(CT)3.1415926

48

Compilerprinciples47

?入口表(ENT)Swap二目子程序入口地址

?標(biāo)號表

(LBT)L1入口地址

?基本字表DO編號(03)

(KWT)

CompilerPrinciples48

6.出錯處理:

這是編譯程序的又一重要組成部分,

因?yàn)榫幾g的各個階段都有可能發(fā)現(xiàn)源

程序中的錯誤。一旦發(fā)現(xiàn)這樣或那樣

的錯誤,就應(yīng)把錯誤的性質(zhì)及位置報(bào)

告給用戶,并且使編譯能繼續(xù)下去。

Compilerprinciples49

四、編譯程序的構(gòu)造過程

1.需求分析,確定語言文本

(1)確定語言的種類:

?按語言范型分類,當(dāng)今大多數(shù)程序語言可分為四類:

過程式(強(qiáng)制式語言):命令驅(qū)動,面向語句,如

FORTRAN>PASCAL>Ada及C等

函數(shù)式(應(yīng)用式)語言:功能驅(qū)動,面向函數(shù),如

LISP、SNOBOL及ML等

邏輯式(基于規(guī)則的)語言:依據(jù)條件進(jìn)行邏輯推演,

如Prolog等

00語言:支持封裝性、繼承性、多態(tài)性及動態(tài)聚

束等,以對象為運(yùn)行單位,如Smalltalk、Java、

C++等

CompilerPrinciples50

?通過用戶提供的應(yīng)用范圍,決定采用何種語

、A

H。

例如:

偏重于科學(xué)計(jì)算的則選用Fortran;

偏重于符號處理的則選用Lisp或Snobol;

偏重于事務(wù)處理的則選用Cobol或數(shù)據(jù)庫管理

語言;

CompilerPrinciples51

(2)深刻理解語言的結(jié)構(gòu)、語法及語義

這就是說不僅僅是用程序設(shè)計(jì)語言編幾個程序的

問題,而是要在語法和語義方面下一些功夫。具

體說來有以下幾個方面:

①程序語言的定義:

任何程序語言都是某個確定的字符集上的符號按

照一定規(guī)則組成的有窮序列。

這里所謂的規(guī)則是從兩個方面來談的:

-語法規(guī)則:用于形成和產(chǎn)生一個正確的程序的

一組規(guī)則。

?語義規(guī)則:用于定義程序意義的一組規(guī)則。

CompilerPrinciples52

例如:

從語法的角度看,標(biāo)識符和名字是一個東

西,都是以字母開頭的字母數(shù)字串;但從語

義的角度看,標(biāo)識符是一個沒有任何意義的

字符序列,而名字卻有確定的意義和屬性,

而且具有一定的作用域和定義域,即有局部

和全部之分。

又如:....

程序從語法角度看,是一些語法范疇構(gòu)成

的如下層次結(jié)構(gòu):

CompilerPrinciples53

程序

I

分程序或子程序(過程、函數(shù)等)

PBT

語句

I

表達(dá)式

數(shù)據(jù)引用算符函數(shù)調(diào)用

而從語義的角度來說,程序是描述一定

的數(shù)據(jù)結(jié)構(gòu)及其處理過程。

CompilerPrinciples54

②程序結(jié)構(gòu):

現(xiàn)代高級語言程序通常由若干子程序段

(過程、函數(shù)等)構(gòu)成,許多語言還引入了

類、程序包等更高級的結(jié)構(gòu)。

例如,Fortran、C程序是塊結(jié)構(gòu)的;

Pascal程序是過程嵌套的;Algol既有分程序

嵌套,又有過程嵌套;Java與C++是面向?qū)ο?/p>

的,它們很重要的方面是類和繼承的概念,

同時支持多態(tài)性和動態(tài)聚束等特性;而在Ada

中引入了程序包,它可以把數(shù)據(jù)和操作代碼

封裝在一起,支持?jǐn)?shù)據(jù)抽象。

(詳見教材P15.18)

CompilerPrinciples55

③語言的基本成分:

包括數(shù)據(jù)類型、表達(dá)式、語句、過程或函數(shù)等,

這些在學(xué)習(xí)語言課時都已經(jīng)學(xué)過了,但從編譯的角

度出發(fā),應(yīng)如何了解這些基本成分呢?

?初等數(shù)據(jù)類型:牽扯到存儲空間的問題;

■結(jié)構(gòu)數(shù)據(jù)類型:牽扯到下標(biāo)、維數(shù)、存放方式、

分配時間動態(tài)與靜態(tài)等;

?表達(dá)式:牽扯到運(yùn)算分量、運(yùn)算符、形成規(guī)則、

運(yùn)算順序等;

?語句:順序、控制、循環(huán)等;

溫馨提示

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

最新文檔

評論

0/150

提交評論