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