1. 程式人生 > >演算法=邏輯+控制: 在邏輯式程式設計中,程式設計師只需表達邏輯,而控制交給程式語言的直譯器或編譯器去管理

演算法=邏輯+控制: 在邏輯式程式設計中,程式設計師只需表達邏輯,而控制交給程式語言的直譯器或編譯器去管理

“邏輯式語言著眼於關係而非函式,對付這類問題正是它的拿手好戲。”冒號聲音逐漸高亢,“大家應該都聽說過等式‘演算法+資料結構=程式’吧?這是Pascal設計者Niklaus Wirth的一本著作的書名,它刻畫了過程式尤其是結構化程式設計的思想。後來Robert Kowalski進一步提出:演算法=邏輯+控制。其中邏輯是演算法的核心,控制主要用於改進演算法的效率。在邏輯式程式設計中,程式設計師只需表達邏輯,而控制交給程式語言的直譯器或編譯器去管理。”

  

冒號欣然應允:“由於邏輯式程式設計模擬人類的邏輯思維,故而在機器證明、專家系統、自然語言處理、博弈等人工智慧領域如魚得水,同時在非學術領域的知識管理、智慧決策分析等方面也能大顯身手。同為宣告式,它與函式式一樣比命令式更簡潔、更抽象、更少副作用,運用得當能大大提高生產效率,還能用於快速原型(rapid prototyping)開發。但缺點是執行效率偏低,可掌控性較差,與常規的過程式思維差異較大,更適合基於規則(rule-based)而不是基於狀態(state-based)的應用[5]

。此外,相對而言邏輯式語言還不夠成熟和完善。”

 

 

http://www.cnblogs.com/xyz98/archive/2009/04/12/1434164.html

 

        程式碼的長度不是衡量軟體複雜度的唯一標準。其中的邏輯結構越複雜、越微妙、受需求變化的影響越大,軟體越難控制和維護。

·        演算法=邏輯+控制。邏輯式程式設計將演算法中的控制部分大都移交給程式語言,程式設計人員主要關注演算法的核心邏輯。這樣大大減輕了程式設計師的負擔,編碼也更簡潔易懂,更具可維護性和可擴充套件性。

·        有別於過程式和函式式,邏輯式沒有明顯的輸入和輸出之分。

·        邏輯式程式設計不僅適用於人工智慧方面的學術領域,同樣廣泛適用於各種涉及知識管理、決策分析等方面的應用領域。

·        相對於命令式,邏輯式更簡潔、更抽象、更少副作用,能提高生產效率,還能用於快速原型開發。但在執行效率、可掌控性、語言成熟度等方面有所欠缺。另外,因其思維方式獨特而鮮為人用,適合基於規則而非基於狀態的應用 。