版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Part2Part2高級(jí)語言及其語法描述高級(jí)語言及其語法描述授課:胡靜授課:胡靜內(nèi)容提要內(nèi)容提要預(yù)備知識(shí)預(yù)備知識(shí)形式語言基礎(chǔ)形式語言基礎(chǔ)程序語言的定義(語法定義、語義定義)程序語言的定義(語法定義、語義定義) 高級(jí)語言的一般特性(程序結(jié)構(gòu)、數(shù)據(jù)類型和操作、高級(jí)語言的一般特性(程序結(jié)構(gòu)、數(shù)據(jù)類型和操作、語句與控制結(jié)構(gòu))語句與控制結(jié)構(gòu))程序語言的文法程序語言的文法文法的類型文法的類型上下文無關(guān)文法及其語法樹上下文無關(guān)文法及其語法樹有關(guān)文法實(shí)用中的一些說明有關(guān)文法實(shí)用中的一些說明預(yù)備知識(shí)預(yù)備知識(shí)更多的概念和一些約定更多的概念和一些約定A, B, C, 用來表示用來表示非終結(jié)符非終結(jié)符a, b, c,
2、 表示表示終結(jié)符終結(jié)符, X, Y, Z 可以用來表示可以用來表示終結(jié)符或者非終結(jié)符終結(jié)符或者非終結(jié)符, w, x, y, z 表示表示終結(jié)符號(hào)串終結(jié)符號(hào)串, , , , 表示由表示由終結(jié)符或非終結(jié)符構(gòu)成的符號(hào)串終結(jié)符或非終結(jié)符構(gòu)成的符號(hào)串在產(chǎn)生式在產(chǎn)生式A中,中,A 是產(chǎn)生式的左邊是產(chǎn)生式的左邊(lefthand side,LHS)是產(chǎn)生式的右邊是產(chǎn)生式的右邊( righthand side, RHS)A1|n 表示產(chǎn)生式表示產(chǎn)生式 A 1 , A n符號(hào)串和符號(hào)串集合的運(yùn)算符號(hào)串和符號(hào)串集合的運(yùn)算符號(hào)串和符號(hào)串集合的運(yùn)算符號(hào)串和符號(hào)串集合的運(yùn)算將字符看做符號(hào),則單詞就是符號(hào)串,將字符看做符
3、號(hào),則單詞就是符號(hào)串,單詞集合就是符號(hào)串的集合單詞集合就是符號(hào)串的集合將單詞看做符號(hào),則句子就是符號(hào)串,將單詞看做符號(hào),則句子就是符號(hào)串,而所有句子的集合(語言)就是符號(hào)串而所有句子的集合(語言)就是符號(hào)串的集合的集合程序語言的定義程序語言的定義程序語言的語法定義程序語言的語法定義所謂一個(gè)語言的語法是指這樣一組規(guī)則,用它可以形所謂一個(gè)語言的語法是指這樣一組規(guī)則,用它可以形成和產(chǎn)生一個(gè)合式的程序。這些規(guī)則一部分稱為詞法成和產(chǎn)生一個(gè)合式的程序。這些規(guī)則一部分稱為詞法規(guī)則則,另一部分稱為語法規(guī)則(或產(chǎn)生規(guī)則)規(guī)則則,另一部分稱為語法規(guī)則(或產(chǎn)生規(guī)則)詞法規(guī)則:詞法規(guī)則規(guī)定了字母表中哪樣的字符串是一詞
4、法規(guī)則:詞法規(guī)則規(guī)定了字母表中哪樣的字符串是一個(gè)單詞符號(hào),是單詞符號(hào)的形成規(guī)則個(gè)單詞符號(hào),是單詞符號(hào)的形成規(guī)則 語法規(guī)則:語言的語法規(guī)則規(guī)定了如何從單詞符號(hào)形成語法規(guī)則:語言的語法規(guī)則規(guī)定了如何從單詞符號(hào)形成更大的結(jié)構(gòu)(即語法單位),換言之,語法規(guī)則是語法更大的結(jié)構(gòu)(即語法單位),換言之,語法規(guī)則是語法單位的形成規(guī)則單位的形成規(guī)則程序語言的定義程序語言的定義程序語言的語義定義程序語言的語義定義所謂一個(gè)語言的語義是指這樣的一組規(guī)則,使用它可所謂一個(gè)語言的語義是指這樣的一組規(guī)則,使用它可以定義一個(gè)程序的意義。這些規(guī)則稱為語義。以定義一個(gè)程序的意義。這些規(guī)則稱為語義。 我們將要介紹的是目前大多數(shù)編譯
5、程序普遍采用的一我們將要介紹的是目前大多數(shù)編譯程序普遍采用的一種方法,即基于屬性文法的語法制導(dǎo)翻譯方法,雖然種方法,即基于屬性文法的語法制導(dǎo)翻譯方法,雖然還不是形式系統(tǒng),但是比較接近形式化的。還不是形式系統(tǒng),但是比較接近形式化的。 高級(jí)語言的一般特征高級(jí)語言的一般特征 高級(jí)語言的程序結(jié)構(gòu)高級(jí)語言的程序結(jié)構(gòu) 程序程序子程序子程序或或分程分程序序語句語句表達(dá)式表達(dá)式數(shù)據(jù)數(shù)據(jù)引用引用算符算符函數(shù)函數(shù)調(diào)用調(diào)用數(shù)據(jù)類型和操作數(shù)據(jù)類型和操作 數(shù)據(jù)類型的要素:數(shù)據(jù)類型的要素:用于區(qū)別這種類型的數(shù)據(jù)對(duì)象的屬性;用于區(qū)別這種類型的數(shù)據(jù)對(duì)象的屬性;這種類型的數(shù)據(jù)對(duì)象可以具有的值;這種類型的數(shù)據(jù)對(duì)象可以具有的值;可
6、以作用于這種類型的數(shù)據(jù)對(duì)象的操作;可以作用于這種類型的數(shù)據(jù)對(duì)象的操作; 數(shù)據(jù)類型分類:數(shù)據(jù)類型分類:初等數(shù)據(jù)類型:數(shù)值數(shù)據(jù)、邏輯數(shù)據(jù)、字符數(shù)據(jù)、指初等數(shù)據(jù)類型:數(shù)值數(shù)據(jù)、邏輯數(shù)據(jù)、字符數(shù)據(jù)、指針類型針類型數(shù)據(jù)結(jié)構(gòu):數(shù)組、記錄、字符串、表格、棧、隊(duì)列和數(shù)據(jù)結(jié)構(gòu):數(shù)組、記錄、字符串、表格、棧、隊(duì)列和抽象數(shù)據(jù)類型(抽象數(shù)據(jù)類型(Ada通過程序包通過程序包package提供,其余通提供,其余通過類過類class提供)提供)語句與控制結(jié)構(gòu)語句與控制結(jié)構(gòu) 表達(dá)式:一個(gè)表達(dá)式是由運(yùn)算量(操作數(shù),即數(shù)據(jù)引表達(dá)式:一個(gè)表達(dá)式是由運(yùn)算量(操作數(shù),即數(shù)據(jù)引用或函數(shù)調(diào)用)和算符組成的。用或函數(shù)調(diào)用)和算符組成的。語句
7、:不同程序語言含有不同形式和功能的各種語句語句:不同程序語言含有不同形式和功能的各種語句執(zhí)行語句:描述程序的動(dòng)作,分為賦值語句、控制語執(zhí)行語句:描述程序的動(dòng)作,分為賦值語句、控制語句、輸入句、輸入/輸出語句;輸出語句;說明性語句:定義各種不同數(shù)據(jù)類型的變量或運(yùn)算說明性語句:定義各種不同數(shù)據(jù)類型的變量或運(yùn)算從形式上分,語句可以分為簡(jiǎn)單句、復(fù)合句和分程序從形式上分,語句可以分為簡(jiǎn)單句、復(fù)合句和分程序等。等。 文法的直觀概念文法的直觀概念關(guān)于文法的定義關(guān)于文法的定義定義定義3.1文法文法G定義為四元組(定義為四元組(VN, VT, P, S)。)。其中其中VN為非終結(jié)符號(hào)(或語法實(shí)體,或變量)集;為
8、非終結(jié)符號(hào)(或語法實(shí)體,或變量)集;VT為終結(jié)符為終結(jié)符號(hào)集;號(hào)集;P為產(chǎn)生式(也稱規(guī)則)的集合;為產(chǎn)生式(也稱規(guī)則)的集合;VN, VT和和P是非空有窮是非空有窮集。集。S稱做識(shí)別符號(hào)或開始符號(hào),是一個(gè)非終結(jié)符(稱做識(shí)別符號(hào)或開始符號(hào),是一個(gè)非終結(jié)符(S VN),),至少要在一條規(guī)則中作為左部出現(xiàn)。至少要在一條規(guī)則中作為左部出現(xiàn)。VN和和VT不含公共元素,即不含公共元素,即VNVT=。通常。通常V表示表示VNVT,V稱稱為文法為文法G的字母表或字匯表。的字母表或字匯表。例例3.1 文法文法G=(VN,VT,P,S)VN = S , VT = 0, 1 P= S0S1, S01 S為開始符號(hào)為
9、開始符號(hào)文法可以簡(jiǎn)寫,只需要指出開始符號(hào)和產(chǎn)生式即可。文法可以簡(jiǎn)寫,只需要指出開始符號(hào)和產(chǎn)生式即可。關(guān)于文法的定義(續(xù))關(guān)于文法的定義(續(xù))定義定義3.2如如是文法是文法G=(VN, VT, P, S)的規(guī)則的規(guī)則(或說是或說是P中第一中第一個(gè)產(chǎn)生式個(gè)產(chǎn)生式),和和是是V*中的任意符號(hào)串,若有符號(hào)串中的任意符號(hào)串,若有符號(hào)串v,w滿足:滿足:v=,w=,則說,則說v(應(yīng)用規(guī)則(應(yīng)用規(guī)則)直)直接產(chǎn)生接產(chǎn)生w,或說,或說w是是v的直接推導(dǎo)。的直接推導(dǎo)。(v=w)例:例:GS: S0S1, S01 S 0S1 00S11 000S111 00001111G關(guān)于文法的定義(續(xù))關(guān)于文法的定義(續(xù))定
10、義定義3.3如果存在直接推導(dǎo)的序列:如果存在直接推導(dǎo)的序列:v=w0=w1=w2=wn=w,(n0),則稱,則稱v推導(dǎo)出(產(chǎn)生)推導(dǎo)出(產(chǎn)生)w(推導(dǎo)長(zhǎng)度為(推導(dǎo)長(zhǎng)度為n)。記)。記做做v=+w。定義定義3.4若有若有v=+w,或,或v=w,則記做,則記做v=*w。規(guī)范推導(dǎo)(最右推導(dǎo))規(guī)范推導(dǎo)(最右推導(dǎo))最左推導(dǎo):若規(guī)則右端符號(hào)串中有兩個(gè)以上的非終結(jié)最左推導(dǎo):若規(guī)則右端符號(hào)串中有兩個(gè)以上的非終結(jié)符時(shí),先推導(dǎo)左邊的。符時(shí),先推導(dǎo)左邊的。最右推導(dǎo):若規(guī)則右端符號(hào)串中有兩個(gè)以上的非終結(jié)最右推導(dǎo):若規(guī)則右端符號(hào)串中有兩個(gè)以上的非終結(jié)符時(shí),先推導(dǎo)右邊的。符時(shí),先推導(dǎo)右邊的。關(guān)于文法的定義(續(xù))關(guān)于文法的
11、定義(續(xù))定義定義3.5設(shè)設(shè)GS是一文法,如果符號(hào)串是一文法,如果符號(hào)串x是從識(shí)別符號(hào)推導(dǎo)出來的,即有是從識(shí)別符號(hào)推導(dǎo)出來的,即有S=*x,則稱,則稱x是文法是文法GS的句型。若的句型。若x只由終結(jié)符號(hào)組成,則稱只由終結(jié)符號(hào)組成,則稱x為為GS的句子。的句子。定義定義3.6文法文法G所產(chǎn)生的語言定義為集合所產(chǎn)生的語言定義為集合x | S=*x,其中,其中S為文法的開始為文法的開始符號(hào),且符號(hào),且xVT *??捎谩?捎肔(G)表示該集合。表示該集合。例:例:G: S0S1, S01S 0S1 00S11 000S111 00001111L(G) = 0n1n | n1關(guān)于文法的定義(續(xù))關(guān)于文法
12、的定義(續(xù))定義定義3.7若若L(G1) = L(G2),則稱文法,則稱文法G1和和G2是等價(jià)的。是等價(jià)的。例例1:如文法:如文法G1A:A0R 與與G2S: S0S1 等價(jià)等價(jià) A01 S01 RA1例例2:G1E: E i 與與 G2E:E T|E+T等價(jià)等價(jià) E E+E T F|T*F E E*E F (E)|i E (E)文法的類型文法的類型 Chomsky將文法分為四種類型:將文法分為四種類型:0型文法:對(duì)任一產(chǎn)生式型文法:對(duì)任一產(chǎn)生式,都有,都有(VNVT)+, (VNVT)*1型文法:對(duì)任一產(chǎn)生式型文法:對(duì)任一產(chǎn)生式,都有,都有|, 僅僅僅僅 除外除外2型文法:對(duì)任一產(chǎn)生式型文法
13、:對(duì)任一產(chǎn)生式,都有,都有VN , (VNVT)*3型文法:任一產(chǎn)生式型文法:任一產(chǎn)生式的形式都為的形式都為AaB或或Aa,其中其中AVN ,BVN ,aVT。上述叫做右線性文法,。上述叫做右線性文法,另有左線性文法,二者等價(jià)。另有左線性文法,二者等價(jià)。文法的類型舉例文法的類型舉例1型(上下文有關(guān))文法型(上下文有關(guān))文法 文法文法GS: SCDAbbA CaCABaaB CbCBBbbBADaD CBDbD DAabDL(G)=ww|wa,b*文法的類型舉例文法的類型舉例2型(上下文無關(guān))文法型(上下文無關(guān))文法 文法文法GS:SaB|bAAa|aS|bAABb|bS|aBB 文法文法GS:
14、S0A|1B|0A0A|1B|0SB1B|1|0文法的類型舉例文法的類型舉例定義標(biāo)識(shí)符的定義標(biāo)識(shí)符的3型(正規(guī))文法型(正規(guī))文法 文法文法GI:I lTI lT lTT dTT lT d文法和語言文法和語言0型文法型文法0型文法(短語文法)的能力相當(dāng)于圖靈機(jī),可以表征任何遞歸型文法(短語文法)的能力相當(dāng)于圖靈機(jī),可以表征任何遞歸可枚舉集,而且任何可枚舉集,而且任何0型語言都是遞歸可枚舉的型語言都是遞歸可枚舉的1型文法(上下文有關(guān)文法)型文法(上下文有關(guān)文法)產(chǎn)生式的形式為產(chǎn)生式的形式為1A212,即只有,即只有A出現(xiàn)在出現(xiàn)在1和和2的上下文的上下文中時(shí),才允許中時(shí),才允許取代取代A。其識(shí)別系
15、統(tǒng)是線性界限自動(dòng)機(jī)。其識(shí)別系統(tǒng)是線性界限自動(dòng)機(jī)。2型文法(上下文無關(guān)文法)型文法(上下文無關(guān)文法)產(chǎn)生式的形式為產(chǎn)生式的形式為A,取代取代A時(shí)與時(shí)與A的上下文無關(guān)。其識(shí)別系的上下文無關(guān)。其識(shí)別系統(tǒng)是不確定的下推自動(dòng)機(jī)。統(tǒng)是不確定的下推自動(dòng)機(jī)。3型文法(正則文法)型文法(正則文法)產(chǎn)生的語言是有窮自動(dòng)機(jī)(產(chǎn)生的語言是有窮自動(dòng)機(jī)(FA)所接受的集合)所接受的集合上下文無關(guān)文法上下文無關(guān)文法上下文無關(guān)文法有足夠的能力描述現(xiàn)今程序設(shè)計(jì)語言的語法結(jié)構(gòu)上下文無關(guān)文法有足夠的能力描述現(xiàn)今程序設(shè)計(jì)語言的語法結(jié)構(gòu)算術(shù)表達(dá)式算術(shù)表達(dá)式語句語句賦值語句賦值語句條件語句條件語句讀語句讀語句文法文法G=(E, +,*,
16、I,(,), P, E ifthen P:E i | ifthenelse E E+EE E*EE (E)上下文無關(guān)文法的語法樹用于描述上下文無關(guān)文法的用于描述上下文無關(guān)文法的句型推導(dǎo)句型推導(dǎo)的直觀方法的直觀方法 例: GS:SaASASbAASSSaAba S a A S S b A b a句型句型aabbaa的語法樹(推導(dǎo)樹)的語法樹(推導(dǎo)樹)葉子結(jié)點(diǎn):樹中沒有子孫的結(jié)點(diǎn)。葉子結(jié)點(diǎn):樹中沒有子孫的結(jié)點(diǎn)。從左到右讀出推導(dǎo)樹的葉子標(biāo)記,所得的句型為推導(dǎo)樹的結(jié)從左到右讀出推導(dǎo)樹的葉子標(biāo)記,所得的句型為推導(dǎo)樹的結(jié)果。也把該推導(dǎo)樹稱為該句型的語法樹。果。也把該推導(dǎo)樹稱為該句型的語法樹。a aa a上
17、下文無關(guān)文法的語法樹推導(dǎo)過程中施用產(chǎn)生式的順序 例例: GS:SaASASbAASSSaAba S a A S S b A a a b aSaASaAaaSbAaaSbbaaaabbaaSaASaSbASaabASaabbaSaabbaaSaASaSbASaSbAaaabAaaabbaa文法的二義性最左(最右)推導(dǎo):在推導(dǎo)的任何一步最左(最右)推導(dǎo):在推導(dǎo)的任何一步,其中,其中、是句型,都是對(duì)是句型,都是對(duì)中的最左(右)非終結(jié)符進(jìn)行替換中的最左(右)非終結(jié)符進(jìn)行替換最右推導(dǎo)被稱為規(guī)范推導(dǎo)。最右推導(dǎo)被稱為規(guī)范推導(dǎo)。由規(guī)范推導(dǎo)所得的句型稱為規(guī)范句型由規(guī)范推導(dǎo)所得的句型稱為規(guī)范句型文法的二義性文法的二義性例:GE:E iE E+EE E*EE (E) E E E + E E + E E E * * E i E i i i i i E E E E * * E E i E + E i E + E i i i i句型句型 i*i+i 的兩個(gè)不同的最左推導(dǎo):的兩個(gè)不同的最左推導(dǎo):推導(dǎo)推導(dǎo)1:E E+E E*E+E i*E+E i*i+E i*i+i推導(dǎo)推導(dǎo)2:E E*E i*E i*E+E i*i+E i
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年冀教版五年級(jí)語文下冊(cè)月考試卷
- 二零二五年度金融服務(wù)收益分成協(xié)議6篇
- 2025年度物流倉儲(chǔ)代建合同協(xié)議書4篇
- 2024食品品牌授權(quán)使用合同
- 5《七律·長(zhǎng)征》(說課稿)-2024-2025學(xué)年統(tǒng)編版語文六年級(jí)上冊(cè)
- 2023九年級(jí)物理下冊(cè) 第二十章 電與磁第3節(jié) 電磁鐵 電磁繼電器第2課時(shí) 電磁繼電器說課稿 (新版)新人教版
- 2025年度道路照明設(shè)施智能化改造與節(jié)能降耗合同4篇
- 二零二五年美容院?jiǎn)T工健康保險(xiǎn)及福利保障合同4篇
- 二零二五年教育機(jī)構(gòu)兼職教師培訓(xùn)與發(fā)展計(jì)劃協(xié)議3篇
- 二零二五版讓與擔(dān)保合同-醫(yī)療健康產(chǎn)業(yè)融資擔(dān)保服務(wù)3篇
- 2025年度版權(quán)授權(quán)協(xié)議:游戲角色形象設(shè)計(jì)與授權(quán)使用3篇
- 2024年08月云南省農(nóng)村信用社秋季校園招考750名工作人員筆試歷年參考題庫附帶答案詳解
- 防詐騙安全知識(shí)培訓(xùn)課件
- 心肺復(fù)蘇課件2024
- 2024年股東股權(quán)繼承轉(zhuǎn)讓協(xié)議3篇
- 2024-2025學(xué)年江蘇省南京市高二上冊(cè)期末數(shù)學(xué)檢測(cè)試卷(含解析)
- 四川省名校2025屆高三第二次模擬考試英語試卷含解析
- 《城鎮(zhèn)燃?xì)忸I(lǐng)域重大隱患判定指導(dǎo)手冊(cè)》專題培訓(xùn)
- 湖南財(cái)政經(jīng)濟(jì)學(xué)院專升本管理學(xué)真題
- 考研有機(jī)化學(xué)重點(diǎn)
- 全國身份證前六位、區(qū)號(hào)、郵編-編碼大全
評(píng)論
0/150
提交評(píng)論