版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、淺談程序設(shè)計語言中四種語言范型的區(qū)別淺談程序設(shè)計語言中四種語言范型的區(qū)別byclara過程式程序設(shè)計語言過程式程序設(shè)計語言:?基本觀點(diǎn):基本觀點(diǎn):計算實(shí)現(xiàn)的模型如果按馮諾依曼原理強(qiáng)制改變內(nèi)存中的值叫命令(或譯指令、強(qiáng)制Imperative式)的。所有過程語言都基于這個原理。由于強(qiáng)制改變值,程序狀態(tài)的變化沒有一定規(guī)則,程序大了就很難查錯,很難調(diào)試,不易證明其正確。組織程序的范型即:算法過程數(shù)據(jù)結(jié)構(gòu)。到目前軟件開發(fā)主導(dǎo)語言仍是過程式語言。近
2、代命令式語言增加了模塊強(qiáng)制類型檢查、抽象數(shù)據(jù)類型、類屬等機(jī)制可開發(fā)較安全、可靠的大程序。命令型范式強(qiáng)調(diào)的是一個可以方便解決問題的過程。?表達(dá)上的特點(diǎn):表達(dá)上的特點(diǎn):面向過程就是分析出解決問題所需要的步驟,然后用函數(shù)把這些步驟一步一步實(shí)現(xiàn)。原始的程序設(shè)計范型是:確定需要哪些過程;采用能找到的最好的算法。?執(zhí)行效率:執(zhí)行效率:執(zhí)行效率最高?程序的并發(fā),安全,程序的控制,類型系統(tǒng):程序的并發(fā),安全,程序的控制,類型系統(tǒng):1并發(fā)性:支持程序的并
3、發(fā)性處理,提供并發(fā)線程調(diào)度。2安全:安全性不高。其中表現(xiàn)在:1.濫用goto,通過結(jié)構(gòu)化程序設(shè)計和限制少量可控制的跳轉(zhuǎn),已經(jīng)完全解決。2懸掛指針,盡可能多用引用和在堆??蚣苤蟹峙渲羔槪上罅繎覓熘羔?。但引用的對象依然有時、空問題。沒有完全解決。3函數(shù)副作用,由于馮諾依曼機(jī)的本質(zhì)是改變變量的存儲從而改變程序狀態(tài),但是狀態(tài)時空效應(yīng)不可免,副作用不可能消除。3程序控制:通常的計算機(jī)程序總是由若干條語句組成,從執(zhí)行方式上看,從第一條語句到最
4、后一條語句完全按順序執(zhí)行,是簡單的順序結(jié)構(gòu);在程序執(zhí)行過程當(dāng)中,根據(jù)用戶的輸入或中間結(jié)果去執(zhí)行若干不同的任務(wù)則為選擇結(jié)構(gòu);如果在程序的某處,需要根據(jù)某項(xiàng)條件重復(fù)地執(zhí)行某項(xiàng)任務(wù)若干次或直到滿足或不滿足某條件為止,這就構(gòu)成循環(huán)結(jié)構(gòu)。過程式程序設(shè)計語言并不是只有簡單的順序結(jié)構(gòu),而是順序、選擇、循環(huán)三種結(jié)構(gòu)的復(fù)雜組合。其中,選擇控制語句如:if;switch、case,循環(huán)控制語句如:for、while、do...while,轉(zhuǎn)移控制語句如:b
5、reak、continue、goto。4類型系統(tǒng):有限類型,指針類型,復(fù)合類型(數(shù)組類型),記錄類型,聯(lián)合類型,集合類型等類型組成的,并可以對這些類型進(jìn)行操作。?適用范圍:適用范圍:應(yīng)用范圍非常廣,由于效率非常高,通常用來設(shè)計需要嚴(yán)格控制執(zhí)行時間的系統(tǒng),同時能夠準(zhǔn)確的控制系統(tǒng)的存儲調(diào)度等。計方法的應(yīng)用解決了傳統(tǒng)結(jié)構(gòu)化開發(fā)方法中客觀世界描述工具與軟件結(jié)構(gòu)的不一致性問題,縮短了開發(fā)周期,解決了從分析和設(shè)計到軟件模塊結(jié)構(gòu)之間多次轉(zhuǎn)換映射的繁雜
6、過程,是一種很有發(fā)展前途的系統(tǒng)開發(fā)方法。但是由于有些面向?qū)ο蟪绦蛘Z言有垃圾回收機(jī)制等特點(diǎn),所以不能應(yīng)用于高實(shí)時性的系統(tǒng)。函數(shù)式語言函數(shù)式語言:?基本觀點(diǎn):基本觀點(diǎn):程序?qū)ο笫呛瘮?shù)及高階函數(shù),組織程序的范型是函數(shù)定義及引用。代表語言有LISP、FP、ML、Mira。函數(shù)式范型使程序員集中于把問題的解決用較小的問題的解來描述。傳統(tǒng)程序設(shè)計語言中的賦值等概念,在函數(shù)式程序設(shè)計語言中消失。函數(shù)式程序的一個最本質(zhì)的特性,就是函數(shù)值唯一地由其參數(shù)值
7、所確定。只要使用相同的參數(shù)值,對此程序的不同的調(diào)用總是得到相同的結(jié)果。這種性質(zhì)稱為引用透明性,有助于程序的模塊化。函數(shù)式程序設(shè)計語言具有較強(qiáng)的組織數(shù)據(jù)結(jié)構(gòu)的能力,可以把某一數(shù)據(jù)結(jié)構(gòu)(如數(shù)組)作為單一值處理;可以把函數(shù)作為參數(shù),其結(jié)果也可為函數(shù),這種定義的函數(shù)稱為高階函數(shù)。這些由函數(shù)表達(dá)式所表示的程序簡明、緊湊和易于維護(hù)。過去,這種程序設(shè)計稱為應(yīng)用性程序設(shè)計。1977年,J.巴克斯提出函數(shù)式程序設(shè)計的概念。一般認(rèn)為表處理語言(LISP)是
8、最早的函數(shù)式程序設(shè)計語言。但是,LISP的重點(diǎn)是將函數(shù)應(yīng)用于對象,以產(chǎn)生新的對象,必要時再上升為函數(shù)。巴克斯所提出的函數(shù)式程序設(shè)計,則是引用函數(shù)型產(chǎn)生新函數(shù),程序設(shè)計時從一般的對象空間上升到函數(shù)空間,因而具有優(yōu)越的數(shù)學(xué)性質(zhì),有助于程序的理解、推理和驗(yàn)證。?表達(dá)上的特點(diǎn):表達(dá)上的特點(diǎn):1嚴(yán)禁破壞性賦值通過以下四種方法實(shí)現(xiàn):[1]存儲計算子表達(dá)式的中間結(jié)果。全局符號即按λ演算的符號,聲明時給出,參數(shù)名束定于變元表達(dá)式。where子句內(nèi)的是局
9、部符號名,整個的where部分以堆棧幀實(shí)現(xiàn),局部名存放中間計算結(jié)果。where可嵌套產(chǎn)生塊結(jié)構(gòu)的名字束定。這樣就可以達(dá)到存儲計算子表達(dá)式的中間結(jié)果[2]條件語句的重要組成。用條件表達(dá)式完全可以代替條件語句,其返回值通過參數(shù)束定或where子句束定于名字,以此來實(shí)現(xiàn)[3]用于循環(huán)控制變量。實(shí)現(xiàn)方式如下:函數(shù)式語言都要定義表數(shù)據(jù)結(jié)構(gòu),因?yàn)闅w約和遞歸計算在表上很方便。對整個表操作實(shí)則是隱式迭代,不用循環(huán)控制變量。對于順序值也都用表寫個映射函數(shù)
10、即可隱式迭代。即以遞歸來代替while_do。[4]處理復(fù)雜數(shù)據(jù)結(jié)構(gòu)(增刪改某個成分)。2完全不考慮語句順序:用嵌套代替語義相關(guān)的順序,用懶求值代替順序,利用衛(wèi)式進(jìn)一步消除順序性3全部采用懶求值?執(zhí)行效率:執(zhí)行效率:執(zhí)行效率較低。效率普遍認(rèn)為是函數(shù)式語言的大問題,到目前為止雖然新語言版本在效率問題上作了許多改進(jìn),從過去比順序的命令式語言慢2001000倍到近來的35倍。原因如下:1.函數(shù)是第一類對象,局部于它的數(shù)據(jù)一般要在堆(heap)
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 1程序設(shè)計語言1程序設(shè)計語言的分類
- 《程序設(shè)計語言c》
- 程序設(shè)計語言c實(shí)驗(yàn)
- 邏輯式程序設(shè)計語言
- 如何學(xué)習(xí)程序設(shè)計語言
- 程序設(shè)計語言基礎(chǔ)答案
- 程序設(shè)計語言的層次體系
- 編程解決問題之程序設(shè)計語言c語言
- 知識點(diǎn)1程序設(shè)計語言
- r程序設(shè)計語言考試試卷
- 程序設(shè)計語言(c)復(fù)習(xí)題-
- 《程序設(shè)計語言(c++)》課程設(shè)計
- 程序設(shè)計語言模型的設(shè)計與實(shí)現(xiàn).pdf
- 程序設(shè)計語言中動態(tài)內(nèi)存管理故障測試模型的研究.pdf
- 《c#程序設(shè)計語言》課程標(biāo)準(zhǔn)
- 第10章面向?qū)ο蟪绦蛟O(shè)計語言
- 《程序設(shè)計語言(vfp)》課程教學(xué)大綱
- 程序設(shè)計語言基本概念與試題
- 《程序設(shè)計語言(vb)》課程教學(xué)大綱
- 關(guān)于“程序設(shè)計語言”課程考試通知
評論
0/150
提交評論