程序設(shè)計語言的構(gòu)造基礎(chǔ)與定義_第1頁
程序設(shè)計語言的構(gòu)造基礎(chǔ)與定義_第2頁
程序設(shè)計語言的構(gòu)造基礎(chǔ)與定義_第3頁
程序設(shè)計語言的構(gòu)造基礎(chǔ)與定義_第4頁
程序設(shè)計語言的構(gòu)造基礎(chǔ)與定義_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第三章程序設(shè)計語言的構(gòu)造基礎(chǔ)與程序設(shè)計語言的構(gòu)造基礎(chǔ)與定義定義3.1 程序設(shè)計語言的構(gòu)造基礎(chǔ) 程序設(shè)計語言的基本功能是定義運算對象和對對象的運算。 程序設(shè)計語言中一般有兩類對象: 數(shù)據(jù)型對象和程序型對象。對對象的描述包括:對象的命名對象的屬性對象的組合對對象的控制與管理 對運算的描述包括: 運算的定義 復(fù)合規(guī)則 運算順序的控制。3.1.1 對象的名字、屬性與會聚 對象的名字:使用標(biāo)識符來表示對象。 對象的屬性: 名字代表一個或一片存儲單元,有時代表單元的內(nèi)容(右值),有時代表單元的地址(左值)。 名字具有類型屬性,表明它的數(shù)值類型。 無類型語言:語言的對象的類型在運行時才能決定,并且任何運算可

2、以運用于任何對象,這樣的語言稱為無類型語言,否則為有類型語言。 強類型語言(顯類型語言):對象的類型可在程序正文中顯式?jīng)Q定。 弱類型語言(隱類型語言):需要到運行時候才能決定對象的類型。名字可以代表對象的結(jié)構(gòu)。這種屬性稱為名字的種屬。名字有作用域范圍。作用域定義名字的使用范圍。匯聚:對象的名字和它的某一具體性質(zhì)的結(jié)合稱為匯聚,匯聚的時間稱為匯聚時刻。兩種匯聚時刻:執(zhí)行時的匯聚和編譯時的匯聚。3.1.2 數(shù)據(jù)對象及存儲表示初等類型數(shù)據(jù):整型、實型、邏輯型、字符型等。數(shù)組: var A:arrayl1. u1 ,l2. u2,.,ln.un of integer各維的長度di=ui-li+1 (1

3、in) 設(shè)a為數(shù)組A的首地址,則數(shù)組元素Ai1,i2,.in的地址D為:D=a+(i1-l1)d2d3.dn+( i2-l2)d3d4.dn+.+( in-1-ln-1)dn+ (in-ln)以上數(shù)組的信息若在編譯時能確定則為靜態(tài)數(shù)組,否則為動態(tài)數(shù)組,保存這些信息的表格稱為內(nèi)情向量表。 記錄(或結(jié)構(gòu)):允許不同類型數(shù)據(jù)復(fù)合的組織形式。集合:由可區(qū)別的離散元素構(gòu)成。注意與數(shù)學(xué)上的集合概念的區(qū)別。既語言上集合中的元素有序的概念。它的存儲方式可用各種鏈表結(jié)構(gòu)、數(shù)組結(jié)構(gòu)等。 指針與動態(tài)數(shù)據(jù)結(jié)構(gòu):指針變量的內(nèi)容是指向其它數(shù)據(jù)單元的地址。指針變量的主要作用是在運行時建立動態(tài)的數(shù)據(jù)區(qū)和建立棧、隊列、鏈表等動

4、態(tài)數(shù)據(jù)結(jié)構(gòu)。 文件:表示輸入輸出設(shè)備上的數(shù)據(jù)組織。一般有順序文件、索引順序文件和隨機存取文件。文件存取單位是邏輯記錄。3.1.3 運行時的存儲管理運行時需存儲管理的主要數(shù)據(jù)有:運行程序、系統(tǒng)運行程序、用戶定義的各種數(shù)據(jù)、用于過程調(diào)用的連接數(shù)據(jù)、輸入輸出緩沖區(qū)和一些系統(tǒng)數(shù)據(jù)。 影響存儲管理策略的因素有:a.語言中可使用的數(shù)據(jù)結(jié)構(gòu)形式。b.語言中定義的程序結(jié)構(gòu)。 一般編譯技術(shù)采用3種存儲分配策略:靜態(tài)分配、棧式動態(tài)分配和堆式動態(tài)分配。3.1.4 運算及運算的復(fù)合兩類運算:語言自定義的運算和用戶定義的運算。運算的3種結(jié)構(gòu):前綴式、后綴式及中綴式。 運算式中對象的兼容性問題:類型檢查與轉(zhuǎn)換。3.1.5

5、運算的順序控制 表達式內(nèi)部運算順序的控制: 運算符間的優(yōu)先級 同級運算符間的結(jié)合規(guī)則。 語言順序的控制:定義各種控制語句。(語句間的隱含控制關(guān)系) 程序段間的執(zhí)行順序控制:過程調(diào)用與過程返回。主要解決數(shù)據(jù)傳遞問題。3.1.6參數(shù)傳遞 參數(shù)傳遞方法:傳地址:子程序為每一個形參開辟一個單元,用于存放相應(yīng)實參的地址,當(dāng)實參為表達式或常數(shù)時,則存放表示它們值的臨時單元的地址。 傳值:子程序為每一個形參開辟一個單元,用于存放相應(yīng)實參的值。傳結(jié)果:子程序為每一個形參開辟兩個單元,一個用于存放相應(yīng)實參的地址,另一個存放返回的結(jié)果。傳值結(jié)果:它是傳結(jié)果與傳值的結(jié)合。 傳名: 在主調(diào)程序中設(shè)置計算實參地址與右值

6、的形實替換子程序。在子程序中為相應(yīng)實參開辟一個形式單元,用于存放該實參的替換子程序的入口地址。在子程序執(zhí)行過程中,每當(dāng)要向某形參賦值或取值時,就調(diào)用相應(yīng)于該形參的替換子程序,以獲得相應(yīng)實參地址或值。3.2 語言的語法、語義和語用 語法:確定哪些字符串組成該語言的合式程序。 語義:通過語言的基本概念描述程序的含義靜態(tài)語義:無須執(zhí)行就可推導(dǎo)出的性質(zhì)。動態(tài)語義:運行時才能識別的性質(zhì)。 語用:使語言的基本概念與語言的外界發(fā)生聯(lián)系。 語言定義分析的目標(biāo): 定義語法、語義規(guī)則,確定分析后作轉(zhuǎn)換的形式。規(guī)定動態(tài)語義與語用的區(qū)別,確定面向語言的抽象機器的對象與操作,規(guī)定由抽象機對象操作到硬件系統(tǒng)的映射。3.2.1語法性質(zhì) 程序設(shè)計語言的語法規(guī)則分級: 基本符號的拼寫規(guī)則(標(biāo)識符、關(guān)鍵字、等)。 常數(shù)的表示與解釋規(guī)則 具體語法和抽象文法:抽象文法是規(guī)定程序的合成結(jié)構(gòu),而不管具體表示細節(jié)。3.2.2語義性質(zhì) 基本語義性質(zhì): 可在其上進行操作的數(shù)據(jù)對象與結(jié)構(gòu)。 關(guān)于表達式和其它動作語句的操作與構(gòu)造規(guī)則。 提供控制流、程序片段動態(tài)合成的構(gòu)造。3.3 程序環(huán)境與抽象機狀態(tài) 程序環(huán)境:指某一狀態(tài)的數(shù)據(jù)對象集合和過程調(diào)用的層次結(jié)構(gòu)。 抽象機狀態(tài):數(shù)據(jù)對象與存在于特定時刻值的結(jié)合,尚未完成的過程調(diào)用的層次結(jié)構(gòu)以及程序正文中下一個操作的表示。 對象存在的范圍:在對象存在期間,程

溫馨提示

  • 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

提交評論