2 2 1高級語言的一般特性 - 高級語言的一般特性_第1頁
2 2 1高級語言的一般特性 - 高級語言的一般特性_第2頁
2 2 1高級語言的一般特性 - 高級語言的一般特性_第3頁
2 2 1高級語言的一般特性 - 高級語言的一般特性_第4頁
2 2 1高級語言的一般特性 - 高級語言的一般特性_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

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

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

3、數(shù)據(jù)所組成的某種n維矩形結(jié)構(gòu),沿著每一維的距離,稱為下標(biāo) 數(shù)組可變與不可變 編譯時能否確定其存貯空間的大小 訪問 給出數(shù)組名和下標(biāo)值 存放方式 按行存放,按列存放,12,數(shù)組元素地址計算,數(shù)組A10,20的A1,1為a,各維下標(biāo)為1,按行存放,那么Ai,j地址為: a+(i-1)*20+(j-1) 數(shù)組元素地址計算公式,13,數(shù)組元素地址計算,設(shè)A為n維數(shù)組,按行存放,每個元素寬度為w lowi 為第i維 的下界 upi 為第i維 的上界 ni 為第i維 可取值的個數(shù)(ni = upi -lowi + 1), base為A的第一個元素相對地址 元素Ai1,i2,ik相對地址公式 (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 存儲:連續(xù)存放 域的地址計算 相對于記錄結(jié)構(gòu)起點的相對數(shù)OFFSET,CARD1000,16,字符串、表格、棧,字符串:符號處理、公式處理 表格:本質(zhì)上是一種記錄結(jié)構(gòu) 線性表:一組順序化的記錄結(jié)構(gòu)

5、棧:一種線性表,后進先出,POP, PUSH,17,抽象數(shù)據(jù)類型,抽象就是忽略一個主題中與當(dāng)前問題無關(guān)的那些方面,以便更充分地注意與當(dāng)前問題有關(guān)的方面 提取和表現(xiàn)事物的核心特性,忽略細節(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.,美國標(biāo)準(zhǔn)與技術(shù)研究院NIST /dads/HTML/abs

6、tractDataType.html,19,抽象數(shù)據(jù)類型,一個抽象數(shù)據(jù)類型包括 數(shù)據(jù)對象的一個集合 作用于這些數(shù)據(jù)對象的抽象運算的集合 這種類型對象的封裝,即,除了使用類型中所定義的運算外,用戶不能對這些對象進行操作 程序設(shè)計語言對抽象數(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 實現(xiàn)細節(jié) end push; procedure pop (S: in out STACK; E: out ELEM); begin 實現(xiàn)細節(jié) end pop; end;,規(guī)范說明,程序包體,21,抽象數(shù)據(jù)類型,一個抽象數(shù)據(jù)類型包括 數(shù)據(jù)對象的一個集合 作用于這些數(shù)據(jù)對象的抽象運算的集合 這種類型對象的封裝,即,除了使用類型中所定義的運算外,用戶不能對這些對象進行操作 程序設(shè)計語言對抽象

8、數(shù)據(jù)類型的支持 Ada通過程序包(package)提供了數(shù)據(jù)封裝的支持 Smalltalk、C+和Java則通過類(Class)對抽象數(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 高級語言的一般特性,高級語言的分類 程序結(jié)構(gòu) 數(shù)據(jù)結(jié)構(gòu)與操作 語句與控制結(jié)構(gòu),24,語句與控制結(jié)構(gòu),表達式 表達式由運算量(也稱操作數(shù),即數(shù)據(jù)引

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

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論