《編譯原理實(shí)踐與應(yīng)用》第2章高級(jí)語言設(shè)計(jì)基礎(chǔ)_第1頁
《編譯原理實(shí)踐與應(yīng)用》第2章高級(jí)語言設(shè)計(jì)基礎(chǔ)_第2頁
《編譯原理實(shí)踐與應(yīng)用》第2章高級(jí)語言設(shè)計(jì)基礎(chǔ)_第3頁
《編譯原理實(shí)踐與應(yīng)用》第2章高級(jí)語言設(shè)計(jì)基礎(chǔ)_第4頁
《編譯原理實(shí)踐與應(yīng)用》第2章高級(jí)語言設(shè)計(jì)基礎(chǔ)_第5頁
已閱讀5頁,還剩56頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

《編譯原理實(shí)踐與應(yīng)用》第2章高級(jí)語言設(shè)計(jì)基礎(chǔ)第一頁,共61頁。本章要求主要內(nèi)容:符號(hào)串,文法和語言的概念及分類,高級(jí)語言的定義過程重點(diǎn)掌握:符號(hào)串及其運(yùn)算,上下文無關(guān)文法、推導(dǎo)、句型、句子、語言,語法樹、二義文法、文法的語言生成過程,高級(jí)語言的設(shè)計(jì)過程第二頁,共61頁。以C和PASCAL為例復(fù)習(xí)高級(jí)語言1語言的基本字符集的定義(字母,數(shù)字,符號(hào))2單詞的定義3數(shù)據(jù)類型的定義4各種表達(dá)式的定義5各種語句的定義6程序定義PASCAL和C的主要區(qū)別第三頁,共61頁。2.1符號(hào)和符號(hào)串1.字母表:高級(jí)語言程序能夠使用的全體字符構(gòu)成的集合,是元素的有窮非空集合Σ2.符號(hào):字母表中的每個(gè)元素,因此字母表也稱為符號(hào)集。不同的語言可以有不同的字母表,例如英文的字母表中26個(gè)字母、數(shù)字及標(biāo)點(diǎn)符號(hào)等。C語言的字母表是由字母、數(shù)字、若干專用符號(hào)組成。

符號(hào)是某語言能識(shí)別的字符,字母表是該語言能識(shí)別的所有符號(hào)的全體(字符集)。第四頁,共61頁?;靖拍?續(xù))3.符號(hào)串:由字母表中的符號(hào)組成的任何有窮序列稱為符號(hào)串,例如001110是字母表

={0,1}上的符號(hào)串字母表A={a,b,c}上的一些符號(hào)串有:a,b,c,ab,aaca等。在符號(hào)串中,符號(hào)的順序是很重要的,符號(hào)串a(chǎn)b就不同于ba,abca和aabc也不同。符號(hào)串STR表示“由符號(hào)S、T和R,并按此順序組成第五頁,共61頁?;靖拍?續(xù))4.符號(hào)串的運(yùn)算符號(hào)串的長度:符號(hào)串中符號(hào)的個(gè)數(shù)如:某符號(hào)串中有m個(gè)符號(hào),則稱其長度為m,表示為|x|=m,如001110的長度是6??辗?hào)串:即不包含任何符號(hào)的符號(hào)串,用ε表示,其長度為0,即|ε|=0。符號(hào)串的連接:字符串αβ稱為字符串α和β的連接如:=01,β=110,則β=01110,β=11001第六頁,共61頁。集合U、V的乘積:UV={αβ|α∈U&β∈V

}長度相加即:集合UV中的符號(hào)串是由U和V的符號(hào)串連接而成。

U={aa,bb}V={00,11}則UV=?UV≠VU集合的方冪:n個(gè)相同集合的乘積Vn =VVVV….V 規(guī)定V0={ε}第七頁,共61頁。例:Σ={a,b}Σ*={ε,a,b,aa,ab,ba,bb,aaa,aab,…}Σ+={a,b,aa,ab,ba,bb,aaa,aab,…}集合的閉包、正閉包Σ的閉包*表示上的所有符號(hào)串(包括ε)組成的集合。包括長度為0,1,2,…

Σ的正閉包+表示

*上的除ε外的所有符號(hào)串組成的集合。......32SSS=S+V={0,1}V*=?V+=?......32SSS={ε}S*第八頁,共61頁。形式語言的概念Σ*中的任意一個(gè)按一定規(guī)則構(gòu)成的子集稱為Σ上的一個(gè)(形式)語言,屬于該語言的符號(hào)串稱為該語言的句子。例:令L={A,B,…,Z,a,b,…,z},D={0,1,…,9},。由于單個(gè)符號(hào)可以看成是長度為1的符號(hào)串,L和D可以分別看成是有窮的語言集。用集合的運(yùn)算作用于L和D所得到新語言:(1)L∪D是字母和數(shù)字的集合;(2)LD是所有一個(gè)字母后隨一個(gè)數(shù)字的符號(hào)串的集合;(3)L*是所有字母串(包括)的集合;(4)L(L∪D)*是以字母開頭的所有字母數(shù)字串的集合第九頁,共61頁。2.2文法與語言程序設(shè)計(jì)語言的語法結(jié)構(gòu)的形式化描述稱為文法。是一種工具,用于嚴(yán)格定義句子的結(jié)構(gòu);用有窮的規(guī)則刻劃無窮的集合文法是被用來精確而無歧義地描述語言的句子的構(gòu)成方式.文法描述語言的時(shí)候不考慮語言的含義。第十頁,共61頁。引例

例1:有如下規(guī)則<句子><主語><謂語>(表示由…組成)<主語><代詞>|<名詞><代詞>我<名詞>大學(xué)生<謂語><動(dòng)詞><直接賓語><動(dòng)詞>是<直接賓語><代詞>|<名詞>現(xiàn)要求根據(jù)如上規(guī)則得出句子:我是大學(xué)生

<句子>=><主語><謂語>

=><代詞><謂語>=><代詞><動(dòng)詞><直接賓語>=><代詞><動(dòng)詞><名詞>=>我是大學(xué)生第十一頁,共61頁。句子“我是大學(xué)生”也可以如下圖示分析在有規(guī)則的情況下,每一次用上述規(guī)則的右邊去替換左邊,得到“我是大學(xué)生”是符合上述規(guī)則的句子<句子><主語><謂語><代詞><動(dòng)詞><直接賓語><名詞>大學(xué)生我是第十二頁,共61頁。上下文無關(guān)文法的形式定義由四部分組成:終結(jié)符號(hào):是組成該語言的最基本的符號(hào),是不可再分的基本符號(hào),如保留字、標(biāo)識(shí)符等。非終結(jié)符號(hào):規(guī)則中用尖括號(hào)括起來的符號(hào),表示一些語法成分,可以推導(dǎo)出其他的語法成分,表示一定符號(hào)串的集合,是一個(gè)類,如表達(dá)式。開始符號(hào):規(guī)則中的一個(gè)特殊的非終結(jié)符號(hào),語言中的句子都從它開始推導(dǎo),如程序、句子產(chǎn)生式:定義語法成分的規(guī)則,上例中的產(chǎn)生式為所有規(guī)則<句子><主語><謂語><主語><代詞>|<名詞><代詞>我<名詞>大學(xué)生<謂語><動(dòng)詞><直接賓語><動(dòng)詞>是<直接賓語><代詞>|<名詞>第十三頁,共61頁。文法的形式定義(續(xù))一個(gè)文法G抽象地表示為四元組

G=(Vn,Vt,P,S)

其中Vn表示非終結(jié)符號(hào)Vt表示終結(jié)符號(hào),Vn∪Vt=V(字母表),Vn∩Vt=φS是開始符號(hào),P是產(chǎn)生式,形如:αβ(α∈V+且至少含有一個(gè)非終結(jié)符號(hào),β∈V*)第十四頁,共61頁。上例中:G=(Vn,Vt,P,<句子>)

Vn=(<句子>,<主語>,<謂語>,<代詞>,<動(dòng)詞>,<名詞>,<直接賓語>)

Vt=(我,是,大學(xué)生)P=<句子><主語><謂語><主語><代詞>|<名詞><代詞>我<名詞>大學(xué)生<謂語><動(dòng)詞><直接賓語><動(dòng)詞>是<直接賓語><代詞>|<名詞>第十五頁,共61頁。例:某語言中標(biāo)識(shí)符定義的文法G=(VN,VT,P,S)其中:VN={標(biāo)識(shí)符,字母,數(shù)字}VT={a,b,c,…y,z,0,1,…9}S=<標(biāo)識(shí)符>P={<標(biāo)識(shí)符>→<字母><標(biāo)識(shí)符>→<標(biāo)識(shí)符><字母><標(biāo)識(shí)符>→<標(biāo)識(shí)符><數(shù)字><字母>→a<字母>→b……<字母>→z<數(shù)字>→0……<數(shù)字>→9}第十六頁,共61頁。產(chǎn)生式的形式為:Aα左部符號(hào),非終結(jié)符右部,可以含有非終結(jié)符和終結(jié)符又稱為一條規(guī)則有時(shí)一個(gè)產(chǎn)生式不足以描述該語法范疇,就用多個(gè)產(chǎn)生式,如算術(shù)表達(dá)式的描述為:(遞歸定義)EE+EEE*EEiEE+E|E*E|i相同左部的一個(gè)右部又稱一個(gè)候選式第十七頁,共61頁。上下文無關(guān)文法所定義的語法成分獨(dú)立于它可能出現(xiàn)的環(huán)境,即不考慮上下文。第十八頁,共61頁。算術(shù)表達(dá)式的文法定義變量是表達(dá)式表達(dá)式+表達(dá)式是表達(dá)式表達(dá)式*表達(dá)式是表達(dá)式(表達(dá)式)是表達(dá)式EE+EEE*EE(E)EiEE+E|E*E|(E)|i第十九頁,共61頁。從上下文無關(guān)文法得到某個(gè)符號(hào)串的方法:從文法的開始符號(hào)出發(fā),反復(fù)連續(xù)使用產(chǎn)生式,對(duì)左邊的非終結(jié)符進(jìn)行替換和展開,直到全部為終結(jié)符為止。例:表達(dá)式定義規(guī)則EE+EEE*EE(E)Ei(i+i)E=>(E)=>(E+E)=>(i+E)=>(i+i)第二十頁,共61頁。推導(dǎo):連續(xù)使用產(chǎn)生式右部去替換左部某個(gè)非終結(jié)符的過程,得到的連續(xù)序列稱為一個(gè)推導(dǎo)。直接推導(dǎo):又稱一步推導(dǎo)(用符號(hào)=>表示),就是用某條規(guī)則的右部去替換該規(guī)則的左部。歸約:推導(dǎo)的逆過程稱為歸約(Reduction)。直接歸約:直接推導(dǎo)的逆過程。第二十一頁,共61頁。幾個(gè)概念的形式定義直接推導(dǎo):如果αβ是文法G=(Vn,Vt,P,S)的產(chǎn)生式,γ和δ是V*中的任意符號(hào),若有符號(hào)串v,w滿足:

v=γαδ,w=γβδ,則說v直接產(chǎn)生w,(w是v的直接推導(dǎo))記作:v=>w*+例:S01,0S0=>0010(直接推導(dǎo)γ=0,δ=0)如果存在v=>w0=>w1=>w2...=>Wn=w(n>0),則稱v推導(dǎo)出w(長度為n),記作v=>w(至少一步)若有v=>w或v=w,則記作v=>w(0步或若干步)第二十二頁,共61頁。例3:G=({E},{i,+,*,(,)},P,E)

P:EE+E|E*E|(E)|i

表達(dá)式(i)和(i+i)*i的推導(dǎo):E(E)(i)

EE*E(E)*E(E+E)*E(i+E)*E(i+i)*E(i+i)*i

EE

0步推導(dǎo)

E(i+i)*i6步推導(dǎo)

E(i+i)*i

6步推導(dǎo)

E(E)

直接推導(dǎo)第二十三頁,共61頁。句型:設(shè)G(s)是一文法,如果符號(hào)串x是從開始符號(hào)推導(dǎo)出來的,即有s=>x,則稱x是文法G(s)的一個(gè)句型。即:任何由開始符S推導(dǎo)出來的符號(hào)串都是句型。句子:若x僅由終結(jié)符號(hào)組成,則稱x為G(S)的句子*練習(xí)文法G:SaAcB|BdAAaB|cBbScA|b

寫出句型aAcbBdcc和句子acabcbbdcc的推導(dǎo)過程。第二十四頁,共61頁。文法G所產(chǎn)生的語言定義為:

L(G)={x|S=>x,其中S為文法的開始符號(hào),x∈Vt*}。即:一個(gè)文法G可以推導(dǎo)出的所有句子構(gòu)成的一個(gè)集合,就確定了一個(gè)語言。*第二十五頁,共61頁。例:考慮文法G:

它定義了什么語言。SbAAaA|a推導(dǎo)過程:S=>bA=>baS=>bA=>baA=>baa…………….. S=>bA=>baA=>…=>ba…a歸納得:L(G1)={ban|

n≥1}第二十六頁,共61頁。練習(xí):文法G=({A,B,S},{a,b,c},P,S)

SAc|aB

Aab

Bbc

寫出L(G)的全部元素

L(G)={abc}第二十七頁,共61頁。例:考慮文法G2:它定義的語言是:SABAaA|aBbB|bL(G2)={ambn|m,n≥1}第二十八頁,共61頁。思考:構(gòu)造一個(gè)文法G3使得:L(G3)={anbn|n≥1}SaSbSaba,b的個(gè)數(shù)相同,則文法G3為:第二十九頁,共61頁。文法等價(jià):若文法G1和文法G2所產(chǎn)生的語言相同,即L(G1)=L(G2),則稱文法G1和文法G2等價(jià)。第三十頁,共61頁。例:有如下兩個(gè)文法,判斷它們是否等價(jià)?

G1=({S},{0},S,{S0S,S0})

G2=({S},{0},S,{SS0,S0})S0S0S00……………S0S00S…000……0L(G1)={0n|n≥1}對(duì)于G2:對(duì)于G1:SS0S00…000……0

L(G2)={0n|n≥1}G1G2,但L(G1)=L(G2),文法G1和G2等價(jià)

第三十一頁,共61頁。

例3:G=({E},{i,+,*,(,)},P,E)

P:EE+E|E*E|(E)|i

表達(dá)式(i+i)*i的推導(dǎo)過程:

(1)EE*E(E)*E(E+E)*E(i+E)*E(i+i)*E(i+i)*i(2)EE*EE*i(E)*i(E+E)*i(E+i)*i(i+i)*i對(duì)給定的文法,定義的語言是由利用所有的產(chǎn)生式經(jīng)過各種方式推導(dǎo)出所有可能的句子構(gòu)成的,并沒有規(guī)定推導(dǎo)使用產(chǎn)生式的順序。因此從一個(gè)句型到另一個(gè)句型(句子)的推導(dǎo)過程不是唯一的。第三十二頁,共61頁。最左推導(dǎo):在整個(gè)推導(dǎo)過程中,任何一步推導(dǎo)α=>β都是對(duì)α中最左邊的非終結(jié)符進(jìn)行替換。

最右推導(dǎo):在推導(dǎo)之前確定推導(dǎo)的順序,是對(duì)句子進(jìn)行確定性分析所必須的例3:G=({E},{i,+,*,(,)},P,E)

P:EE+E|E*E|(E)|i

(i+i)*i的最左推導(dǎo)過程:

EE*E(E)*E(E+E)*E(i+E)*E(i+i)*E(i+i)*i最右推導(dǎo)過程:

EE*EE*i(E+E)*i(E+i)*i(i+i)*i第三十三頁,共61頁。文法的二義性語法樹:推導(dǎo)的形式化表示,有助于理解句子語法結(jié)構(gòu)的層次每個(gè)結(jié)點(diǎn)都有一個(gè)標(biāo)記,該標(biāo)記屬字母集中的一個(gè)符號(hào),根由開始符號(hào)S標(biāo)記。當(dāng)某個(gè)非終結(jié)符被它的某個(gè)候選式所替換時(shí),就產(chǎn)生相應(yīng)的下一層的結(jié)點(diǎn),候選式中自左至右的每個(gè)符號(hào)對(duì)應(yīng)一個(gè)新的結(jié)點(diǎn),并標(biāo)記它,畫出其與父結(jié)點(diǎn)之間的連線。第三十四頁,共61頁。例:對(duì)文法G=({E},{i,+,*,(,)},P,E)

P:EE+E|E*E|(E)|i

句子(i+i)*i的語法樹:在語法樹的推導(dǎo)過程中的任何時(shí)刻,沒有后代的端末結(jié)點(diǎn)自左至右排列起來就是一個(gè)句型一棵語法樹表示了一個(gè)句型很多可能的不同推導(dǎo)過程。(包括最左推導(dǎo)和最右推導(dǎo))第三十五頁,共61頁。例3:G=({E},{i,+,*,(,)},P,E)

P:EE+E|E*E|(E)|i

句子(i*i+i)的語法樹:

(1)EE+EE*E+Ei*E+Ei*i+Ei*i+i

(2)EE*Ei*Ei*E+Ei*i+Ei*i+i并不是任何情況下一個(gè)句型就唯一地對(duì)應(yīng)一棵語法樹。第三十六頁,共61頁。定義:如果一個(gè)文法存在某個(gè)句子對(duì)應(yīng)兩棵不同的語法樹,則說這個(gè)文法是二義的對(duì)二義文法中的某個(gè)句子的分析不是唯一的,因此總是希望文法是無二義的。但是二義文法有時(shí)也是有用的。第三十七頁,共61頁。證明下述文法是二義文法。例:設(shè)if語句S的文法G=({E,S},{if,then,else,a,e},P,S),其中P為:

SifEthenS(1)SifEthenSelseS(2)Sa(3)Ee(4)推導(dǎo)(1):S

ifEthenS

ifEthenifEthenSelseS推導(dǎo)(2):S

ifEthenSelseS

ifEthenifEthenSelseS第三十八頁,共61頁。文法的分類

文法有四種:設(shè)有G=(Vn,Vt,P,S),不同類型的文法只是對(duì)產(chǎn)生式的要求不同:0型文法(短文文法):G的每個(gè)產(chǎn)生式αβ滿足:α∈V+且α中至少含有一個(gè)非終結(jié)符,β∈V*1型文法(上下文有關(guān)文法):如果G的每個(gè)產(chǎn)生式αβ均滿足|β|>=|α|,僅當(dāng)Sε除外,但S不得出現(xiàn)在任何產(chǎn)生式的右部2型文法(上下文無關(guān)文法):G的每個(gè)產(chǎn)生式為Aβ,A是一非終結(jié)符,β∈V*3型文法(正規(guī)文法):G的每個(gè)產(chǎn)生式的形式都是:AαB或Aα,其中A,B是非終結(jié)符,α是終結(jié)符串。(右線性文法)第三十九頁,共61頁。語言的層次這四種語言可被4種自動(dòng)機(jī)識(shí)別:0型——圖靈機(jī)1型——線性界限自動(dòng)機(jī)2型——下推自動(dòng)機(jī)

3型——有窮自動(dòng)機(jī)從外到內(nèi),四種文法對(duì)產(chǎn)生式的限制越來越多,語言的描述能力越來越弱第四十頁,共61頁。正規(guī)文法的描述能力比上下文無關(guān)文法的描述能力弱正規(guī)文法只能用于描述單詞的構(gòu)成上下文無關(guān)文法有足夠的能力描述現(xiàn)今大多數(shù)程序設(shè)計(jì)語言的語法結(jié)構(gòu)例2.3:

L(G3)={anbn|n≥1}a,b的個(gè)數(shù)相同,不能由任何正規(guī)文法產(chǎn)生,可以由下述上下文無關(guān)文法產(chǎn)生。SaSbSab

同樣,上下文無關(guān)語言的描述能力比上下文有關(guān)語言的描述能力弱。第四十一頁,共61頁。2.3高級(jí)語言的設(shè)計(jì)

語言涉及它的設(shè)計(jì)者、實(shí)現(xiàn)者和使用者本書主要介紹語言的實(shí)現(xiàn),但實(shí)現(xiàn)之前必須了解所實(shí)現(xiàn)的語言的特征、結(jié)構(gòu)和功能。本節(jié)從宏觀上介紹高級(jí)語言的基本結(jié)構(gòu)和共同特征,讓讀者對(duì)高級(jí)語言的認(rèn)識(shí)達(dá)到新的高度,從語言使用者逐步向語言的實(shí)現(xiàn)者、設(shè)計(jì)者過渡。例子第四十二頁,共61頁。程序語言的定義程序設(shè)計(jì)語言的定義包括三部分:語法是定義程序的一組形式規(guī)則,用它可以形成和產(chǎn)生一個(gè)形式上正確的程序;語義也是一組規(guī)則的集合,用以定義語法正確的單詞符號(hào)和語法單位的含義;語用主要是有關(guān)程序設(shè)計(jì)技術(shù)和語言成分的使用方法,它使語言的基本概念與語言的外界(如數(shù)學(xué)概念或計(jì)算機(jī)的對(duì)象和操作)聯(lián)系起來。第四十三頁,共61頁。程序的本質(zhì)

程序是在數(shù)據(jù)的某些特定的表示方式和結(jié)構(gòu)的基礎(chǔ)上對(duì)抽象算法的具體描述。沃斯(N.wirth)以“算法+數(shù)據(jù)結(jié)構(gòu)=程序”來描述程序程序設(shè)計(jì)語言必須以描述算法和數(shù)據(jù)結(jié)構(gòu)作為他自身的主要結(jié)構(gòu)。各種高級(jí)語言均以數(shù)據(jù)類型來描述數(shù)據(jù)結(jié)構(gòu),以控制結(jié)構(gòu)來描述算法。第四十四頁,共61頁。馮.諾依曼體系結(jié)構(gòu)與高級(jí)語言馮.諾依曼機(jī)的思想:一個(gè)存儲(chǔ)器(用來存放指令和數(shù)據(jù)),一個(gè)控制器和一個(gè)運(yùn)算器(控制器負(fù)責(zé)從存儲(chǔ)器中逐條取出指令,運(yùn)算器通過算術(shù)或邏輯操作來處理數(shù)據(jù)),最后的處理結(jié)果必須送回存儲(chǔ)器中。特點(diǎn):(1)數(shù)據(jù)和指令均以二進(jìn)制形式存儲(chǔ)(它們?cè)谕庑紊蠜]有什么區(qū)別,但每位二進(jìn)制數(shù)有不同的含義);(2)程序以“存儲(chǔ)程序”的方式工作(即事先編寫好程序,執(zhí)行之前先將程序存放到存儲(chǔ)器某個(gè)可知的地方);(3)程序順序執(zhí)行(但可強(qiáng)制改變執(zhí)行順序);(4)存儲(chǔ)器的內(nèi)容可以被修改(一旦放入新的數(shù)據(jù),則該單元原來的數(shù)據(jù)立即消失,且被新數(shù)據(jù)代替)。第四十五頁,共61頁。高級(jí)語言的特性:(1)變量:存儲(chǔ)器由大量存儲(chǔ)單元組成,數(shù)據(jù)就存放在這些單元中,匯編語言通過對(duì)存儲(chǔ)單元的命名來訪問數(shù)據(jù)。在高級(jí)語言中,存儲(chǔ)單元及其名稱由變量的概念來代替,變量代表一個(gè)(或一組)已命名的存儲(chǔ)單元,存儲(chǔ)單元可存放變量的值。(2)賦值:使用存儲(chǔ)單元概念的另一個(gè)結(jié)果是每個(gè)計(jì)算結(jié)果都必須存儲(chǔ),即將其賦值到某個(gè)存儲(chǔ)單元,從而改變?cè)搯卧闹?。?)重復(fù):指令存儲(chǔ)在有限的存儲(chǔ)器中,按順序執(zhí)行。若要完成復(fù)雜的計(jì)算,有效的方式就是重復(fù)執(zhí)行某些指令序列。第四十六頁,共61頁。一個(gè)程序往往要涉及若干實(shí)體,如變量、語句和子程序等。實(shí)體具有某些特性,這些特性稱為實(shí)體的屬性。變量的屬性有名字、類型和保留其值的存儲(chǔ)區(qū)等語句的屬性是與之相關(guān)的一系列動(dòng)作子程序的屬性有名字、形參個(gè)數(shù)和類型、參數(shù)傳遞方式的約定等。在處理實(shí)體之前,必須將實(shí)體與相關(guān)的屬性聯(lián)系起來,這個(gè)聯(lián)系的過程稱為綁定(Binding),每個(gè)實(shí)體的綁定信息存儲(chǔ)在特定的表格中。把實(shí)體與它的某個(gè)屬性聯(lián)系起來的時(shí)刻稱為綁定時(shí)間。一旦綁定,這種關(guān)系就一直存在,直到對(duì)這一實(shí)體的另一次綁定。若一個(gè)綁定在運(yùn)行之前(即編譯時(shí))完成,且在運(yùn)行時(shí)不會(huì)改變,則稱為靜態(tài)綁定(StaticBinding)。如一個(gè)綁定在運(yùn)行時(shí)完成(此后可能在運(yùn)行過程中被改變),則稱為動(dòng)態(tài)綁定(dynamicBinding)。第四十七頁,共61頁。抽象變量是高級(jí)語言中最重要的概念之一,它是一個(gè)抽象概念,是對(duì)存儲(chǔ)單元的抽象。馮.諾依曼機(jī)基于存儲(chǔ)單元組成的主存儲(chǔ)器概念,每個(gè)存儲(chǔ)單元用地址來標(biāo)識(shí),可以對(duì)它進(jìn)行讀或?qū)懖僮?,寫操作就是指修改存?chǔ)單元的值。賦值語句就是對(duì)修改存儲(chǔ)單元內(nèi)容的抽象。第四十八頁,共61頁。數(shù)據(jù)類型內(nèi)部類型:數(shù)值數(shù)據(jù)、邏輯數(shù)據(jù)、字符數(shù)據(jù)和指針類型數(shù)據(jù)。內(nèi)部類型是對(duì)二進(jìn)制位串的抽象,其基本形式對(duì)程序員是不可見的,即程序員不能直接訪問表示一個(gè)整數(shù)的位串的某個(gè)特定位。用戶定義類型:數(shù)組、記錄、聯(lián)合、字符串、表格、棧、隊(duì)列、鏈表和樹等,基本表示形式對(duì)程序員是可見的抽象數(shù)據(jù)類型:數(shù)據(jù)對(duì)象的一個(gè)集合,作用于這些數(shù)據(jù)對(duì)象的抽象運(yùn)算的集合,以及這些類型對(duì)象的封裝,C++中的類。基本表示對(duì)程序員是不可見的第四十九頁,共61頁。語句和控制結(jié)構(gòu)程序結(jié)構(gòu)第五十頁,共61頁。表達(dá)式

表達(dá)式由運(yùn)算對(duì)象(數(shù)據(jù)引用或函數(shù)調(diào)用)和運(yùn)算符組成。分為邏輯表達(dá)式、關(guān)系表達(dá)式和算術(shù)表達(dá)式運(yùn)算符之間的優(yōu)先關(guān)系和結(jié)合性規(guī)定了表達(dá)式的計(jì)算次序。第五十一頁,共61頁。邏輯表達(dá)式<邏輯表達(dá)式>→<布爾常量>|<布爾變量>|(<關(guān)系表達(dá)式>)|not<邏輯表達(dá)式>|<邏輯表達(dá)式>and<邏輯表達(dá)式>|<邏輯表達(dá)式>or<邏輯表達(dá)式>第五十二頁,共61頁。關(guān)系表達(dá)式<關(guān)系表達(dá)式>→<算術(shù)表達(dá)式><關(guān)系運(yùn)算符><算術(shù)表達(dá)式><關(guān)系運(yùn)算符>→<|>|<>|<=|>=|==第五十三頁,共61頁。算術(shù)表達(dá)式<算術(shù)表達(dá)式>→<常量>|變量|(<算術(shù)表達(dá)式>)|<算術(shù)表達(dá)式><算術(shù)運(yùn)算符><算術(shù)表達(dá)式><算術(shù)表達(dá)式>→<算術(shù)表達(dá)式>+<項(xiàng)>|<算術(shù)表達(dá)式>-<項(xiàng)>|<項(xiàng)><項(xiàng)>→<項(xiàng)>*<因子>|<項(xiàng)>/<因子>|<因子><因子>→(<算術(shù)表達(dá)式>)|<常量>|<變量><變量>→<標(biāo)識(shí)符><常量>→<整型常量>|<實(shí)型變量>第五十四頁,共61頁。語句

語句說明性語句可執(zhí)行語句說明性語句旨在定義各種不同數(shù)據(jù)類型的變量或運(yùn)算,不需要由編譯程序生成目標(biāo)代碼,主要用來告訴編譯程序一些實(shí)體的屬性,供編譯程序生成目標(biāo)代碼時(shí)使用??蓤?zhí)行語句旨在描述程序的動(dòng)作,需要由編譯程序生成目標(biāo)代碼來實(shí)現(xiàn)它的語義。第五十五頁,共61頁。說明語句

<說明語句>→<常量說明>|<變量說明><常量說明>→const標(biāo)識(shí)符=

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論