函式式程式設計

設計、編制和調試函式式程式的技術。函式式程式是由一些原始函式、定義函式和函式型組成的函式表達式。傳統程式設計語言中的賦值等概念,在函式式程式設計語言中消失。函式式程式的一個最本質的特性,就是函式值唯一地由其參數值所確定。只要使用相同的參數值,對此程式的不同的調用總是得到相同的結果。這種性質稱為引用透明性,有助於程式的模組化。函式式程式設計語言具有較強的組織數據結構的能力,可以把某一數據結構(如數組)作為單一值處理;可以把函式作為參數,其結果也可為函式,這種定義的函式稱為高階函式。這些由函式表達式所表示的程式簡明、緊湊和易於維護。

函式式程式設計

正文

過去,這種程式設計稱為套用性程式設計。1977年J.巴克斯提出函式式程式設計的概念。一般認為表處理語言(LISP)是最早的函式式程式設計語言。但是,LISP的重點是將函式套用於對象,以產生新的對象,必要時再上升為函式。巴克斯所提出的函式式程式設計,則是引用函式型產生新函式,程式設計時從一般的對象空間上升到函式空間,因而具有優越的數學性質,有助於程式的理解、推理和驗證。
由於函式式程式設計語言的簡明性和獨特的表達能力,可用它來研究傳統程式設計語言的語義。一種方法是用於確定一個解釋程式的定義,作為被研究的語言的語義;另一種方法是將被研究的語言寫成的程式轉換成與之等價的函式式程式。在人工智慧領域中,需要用複雜的算法去處理一些複雜的(通常是符號的)數據結構。LISP語言成功地套用於這一領域,說明了函式式程式設計的獨特優越性。巴克斯分析了傳統程式設計語言的缺陷,認為這些缺陷主要是由於諾伊曼式系統結構所造成的。他所提出的函式式程式設計(簡稱FP),擺脫了傳統的諾伊曼計算機結構,需要一種新的非諾伊曼式的系統結構為後援。一些具有新概念的計算機,如歸約機、數據流機,以及專為某種函式式語言(如FP)設計的計算機正在研究和發展中。現代既需要研究在諾伊曼式計算機上如何更有效地實現函式式程式設計語言的問題,也需要研究適應這種語言的新型計算機結構。
函式式程式設計受到重視的原因是:首先由於產生了“軟體危機”,人們企圖探討一種擺脫這種困境的新型程式設計方式,而函式式程式設計具有不少獨特之處。其次,超大規模積體電路技術的發展,為發揮函式式程式設計語言的潛在並行性提供了物質基礎。可以預期,一些具有諸如高度並行性等特點的非諾伊曼式計算機將會出現。隨著硬體技術的發展、軟體方法的研究,以及套用範圍的不斷擴大,函式式程式設計將得到發展,並在新一代計算機系統中起重要作用。
參考書目
 J.Darlington et al.,Functional Programming and its Applications, Cambridge Univ.Pr., Cambridge,1982.

配圖

相關連線

相關詞條

相關搜尋

熱門詞條

聯絡我們