2 2 1高級(jí)語(yǔ)言的一般特性 - 高級(jí)語(yǔ)言的一般特性_第1頁(yè)
2 2 1高級(jí)語(yǔ)言的一般特性 - 高級(jí)語(yǔ)言的一般特性_第2頁(yè)
2 2 1高級(jí)語(yǔ)言的一般特性 - 高級(jí)語(yǔ)言的一般特性_第3頁(yè)
2 2 1高級(jí)語(yǔ)言的一般特性 - 高級(jí)語(yǔ)言的一般特性_第4頁(yè)
2 2 1高級(jí)語(yǔ)言的一般特性 - 高級(jí)語(yǔ)言的一般特性_第5頁(yè)
已閱讀5頁(yè),還剩26頁(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、1,編譯原理,第二章 高級(jí)語(yǔ)言及其語(yǔ)法描述,2,第二章 高級(jí)語(yǔ)言及其語(yǔ)法描述,程序語(yǔ)言的定義 高級(jí)語(yǔ)言的一般特性 程序語(yǔ)言的語(yǔ)法描述,3,第二章 高級(jí)語(yǔ)言及其語(yǔ)法描述,程序語(yǔ)言的定義 高級(jí)語(yǔ)言的一般特性 程序語(yǔ)言的語(yǔ)法描述,4,2.2 高級(jí)語(yǔ)言的一般特性,高級(jí)語(yǔ)言的分類 程序結(jié)構(gòu) 數(shù)據(jù)結(jié)構(gòu)與操作 語(yǔ)句與控制結(jié)構(gòu),5,數(shù)據(jù)類型與操作,一個(gè)數(shù)據(jù)類型通常包括三種要素 用于區(qū)別這種類型數(shù)據(jù)對(duì)象的屬性 這種類型的數(shù)據(jù)對(duì)象可以具有的值 可以作用于這種類型的數(shù)據(jù)對(duì)象的操作,6,數(shù)據(jù)類型與操作,初等數(shù)據(jù)類型 數(shù)值類型 整型、實(shí)型、復(fù)數(shù)、雙精度 運(yùn)算:+,-,*,/等 邏輯類型 true、false 布爾運(yùn)算:

2、,等 字符類型:符號(hào)處理 指針類型,7,測(cè)試:標(biāo)識(shí)符與名字,下面哪種說法正確? ( ) A. 標(biāo)識(shí)符是語(yǔ)義概念,名字是語(yǔ)法概念 B. 標(biāo)識(shí)符是語(yǔ)法概念,名字是語(yǔ)義概念,8,標(biāo)識(shí)符與名字,標(biāo)識(shí)符 以字母開頭的,由字母數(shù)字組成的字符串 標(biāo)識(shí)符與名字兩者有本質(zhì)區(qū)別 標(biāo)識(shí)符是語(yǔ)法概念 名字有確切的意義和屬性,9,Jordan,標(biāo)識(shí)符,名字,10,標(biāo)識(shí)符與名字,名字 值:?jiǎn)卧械膬?nèi)容 屬性:類型和作用域 名字的性質(zhì)的說明方式 由說明語(yǔ)句來明確規(guī)定的 隱含說明 FORTRAN 以I,J,K,N為首的名字代表整型,否則為實(shí)型 動(dòng)態(tài)確定 走到哪里,是什么,算什么,11,數(shù)據(jù)結(jié)構(gòu),數(shù)組 邏輯上,數(shù)組是由同一類型

3、數(shù)據(jù)所組成的某種n維矩形結(jié)構(gòu),沿著每一維的距離,稱為下標(biāo) 數(shù)組可變與不可變 編譯時(shí)能否確定其存貯空間的大小 訪問 給出數(shù)組名和下標(biāo)值 存放方式 按行存放,按列存放,12,數(shù)組元素地址計(jì)算,數(shù)組A10,20的A1,1為a,各維下標(biāo)為1,按行存放,那么Ai,j地址為: a+(i-1)*20+(j-1) 數(shù)組元素地址計(jì)算公式,13,數(shù)組元素地址計(jì)算,設(shè)A為n維數(shù)組,按行存放,每個(gè)元素寬度為w lowi 為第i維 的下界 upi 為第i維 的上界 ni 為第i維 可取值的個(gè)數(shù)(ni = upi -lowi + 1), base為A的第一個(gè)元素相對(duì)地址 元素Ai1,i2,ik相對(duì)地址公式 (i1 n2+

4、i2)n3+i3)nk+ik)w + base-(low1 n2+low2)n3+low3)nk+lowk)w,記為Con,14,內(nèi)情向量,內(nèi)情向量 維數(shù),各維的上、下限,首地址,以及數(shù)組(元素)的類型,15,記錄,邏輯上說,記錄結(jié)構(gòu)由已知類型的數(shù)據(jù)組合在一起的一種結(jié)構(gòu) record char NAME20; integer AGE; bool MARRIED; 訪問:復(fù)合名 CARDk.NAME 存儲(chǔ):連續(xù)存放 域的地址計(jì)算 相對(duì)于記錄結(jié)構(gòu)起點(diǎn)的相對(duì)數(shù)OFFSET,CARD1000,16,字符串、表格、棧,字符串:符號(hào)處理、公式處理 表格:本質(zhì)上是一種記錄結(jié)構(gòu) 線性表:一組順序化的記錄結(jié)構(gòu)

5、棧:一種線性表,后進(jìn)先出,POP, PUSH,17,抽象數(shù)據(jù)類型,抽象就是忽略一個(gè)主題中與當(dāng)前問題無關(guān)的那些方面,以便更充分地注意與當(dāng)前問題有關(guān)的方面 提取和表現(xiàn)事物的核心特性,忽略細(xì)節(jié),18,抽象數(shù)據(jù)類型,抽象數(shù)據(jù)類型(Abstract Data Type) A set of data values and associated operations that are precisely specified independent of any particular implementation.,美國(guó)標(biāo)準(zhǔn)與技術(shù)研究院NIST /dads/HTML/abs

6、tractDataType.html,19,抽象數(shù)據(jù)類型,一個(gè)抽象數(shù)據(jù)類型包括 數(shù)據(jù)對(duì)象的一個(gè)集合 作用于這些數(shù)據(jù)對(duì)象的抽象運(yùn)算的集合 這種類型對(duì)象的封裝,即,除了使用類型中所定義的運(yùn)算外,用戶不能對(duì)這些對(duì)象進(jìn)行操作 程序設(shè)計(jì)語(yǔ)言對(duì)抽象數(shù)據(jù)類型的支持 Ada通過程序包(package)提供了數(shù)據(jù)封裝的支持,20,package STACKS is type ELEM is private; type STACK is limited private; procedure push (S: in out STACK; E: in ELEM); procedure pop (S: in out S

7、TACK; E: out ELEM); end STACK;,package body STACKS is procedure push(S: in out STACK; E: in ELEM); begin 實(shí)現(xiàn)細(xì)節(jié) end push; procedure pop (S: in out STACK; E: out ELEM); begin 實(shí)現(xiàn)細(xì)節(jié) end pop; end;,規(guī)范說明,程序包體,21,抽象數(shù)據(jù)類型,一個(gè)抽象數(shù)據(jù)類型包括 數(shù)據(jù)對(duì)象的一個(gè)集合 作用于這些數(shù)據(jù)對(duì)象的抽象運(yùn)算的集合 這種類型對(duì)象的封裝,即,除了使用類型中所定義的運(yùn)算外,用戶不能對(duì)這些對(duì)象進(jìn)行操作 程序設(shè)計(jì)語(yǔ)言對(duì)抽象

8、數(shù)據(jù)類型的支持 Ada通過程序包(package)提供了數(shù)據(jù)封裝的支持 Smalltalk、C+和Java則通過類(Class)對(duì)抽象數(shù)據(jù)類型提供支持,22,class Car int color_number; int door_number; int speed; push_break ( ) add_oil ( ) class Trash_Car extends car double amount; fill_trash ( ) ,23,2.2 高級(jí)語(yǔ)言的一般特性,高級(jí)語(yǔ)言的分類 程序結(jié)構(gòu) 數(shù)據(jù)結(jié)構(gòu)與操作 語(yǔ)句與控制結(jié)構(gòu),24,語(yǔ)句與控制結(jié)構(gòu),表達(dá)式 表達(dá)式由運(yùn)算量(也稱操作數(shù),即數(shù)據(jù)引

9、用或函數(shù)調(diào)用)和算符(操作符)組成 形式:中綴、前綴、后綴 X*Y -A P 表達(dá)式形成規(guī)則,25,算符的優(yōu)先次序,一般的規(guī)定 PASCAL:左結(jié)合A+B+C=(A+B)+C FORTRAN:對(duì)于滿足左、右結(jié)合的算符可任取一種,如A+B+C就可以處理成(A+B)+C,也可以處理成A+(B+C) 注意兩點(diǎn) 代數(shù)性質(zhì)能引用到什么程度視具體的語(yǔ)言不同而不同 在數(shù)學(xué)上成立的代數(shù)性質(zhì)在計(jì)算機(jī)上未必完全成立,26,語(yǔ)句,賦值語(yǔ)句 A := B 名字左值:該名字代表的那個(gè)單元(地址)稱為該名字的左值(所代表的存貯單元的地址) 右值:一個(gè)名字的值稱為該名字的右值(所代表的存貯單元的內(nèi)容),27,測(cè)試:左值與右值,在C語(yǔ)言中,下面選項(xiàng)只具有右值、不具有左值的是 ( )。 A. 變量 B. 下標(biāo)變量 C. a + 5 D. 指針變量P E. *P (P是指針變量),28,語(yǔ)句,控制語(yǔ)句,無條件轉(zhuǎn)移語(yǔ)句 goto L,條件語(yǔ)句 if B then S if B then S1 else S2,循環(huán)語(yǔ)句 while B do S repeat S until B for i:=E1 step E2 until E3 do S,過程調(diào)用語(yǔ)句 call P(X1, X2, . ,Xn),返回語(yǔ)句 r

溫馨提示

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