邏輯程式設計
![本頁使用了標題或全文手工轉換](http://upload.wikimedia.org/wikipedia/commons/thumb/c/cd/Zh_conversion_icon_m.svg/35px-Zh_conversion_icon_m.svg.png)
邏輯程式設計(邏輯程序設計)是種程式設計典範,它設定答案須符合的規則來解決問題,而非設定步驟來解決問題。過程是
- 演算法=邏輯+控制。
不同的方法,可以看英語:Inductive logic programming。
邏輯程式設計的要點是將正規的邏輯風格帶入電腦程式設計之中。數學家和哲學家發現邏輯是有效的理論分析工具。很多問題可以自然地表示成一個理論。說需要解答一個問題,通常與解答一個新的假設是否跟現在的理論無衝突等價。邏輯提供了一個證明問題是真還是假的方法。建立證明的方法是人所皆知的,故邏輯是解答問題的可靠方法。邏輯程式設計系統則自動化了這個程式。人工智慧在邏輯程式設計的發展中發揮了重要的影響。
猴子和香蕉問題是邏輯程式設計社群的著名問題。電腦須自行找出令猴子接觸香蕉的可行方法,取代程式設計師指定猴子接觸香蕉的路徑和方法。
邏輯程式設計建立了描述一個問題裏的世界的邏輯模型。邏輯程式設計的目標是對它的模型建立新的陳述。世界上知識不斷膨脹。傳統來說,我們會將一個問題陳述成單一的假設。邏輯程式設計的程式透過證明這個假設在模型裏是否為真來解決問題。
一些經常用到邏輯程式設計工具的範疇:
最常用的邏輯程式語言是Prolog,另外有較適用於大型方案的Mercury。詳盡的清單可見於Category:邏輯程式語言。
歷史
早在二十世紀七十年代,羅伯特·科瓦爾斯基等人提出了邏輯可以作為程式設計語言的基本思想,把邏輯和程式這兩個截然不同的概念協調統一為一個概念,於是誕生了邏輯程式設計。這也是早期自動定理證明和人工智慧發展的自然結果。隨後,邏輯程式設計得到了迅速發展,特別是基於一階謂詞的邏輯程式設計語言,將邏輯推理對應於計算,具有豐富的表達能力、非確定性等特點,在定理機器證明、關聯式資料庫系統、程式驗證、模組化程式設計和非單調推理等都有了廣泛的應用。[1]
參考資料
- ^ 劉富春. 关于逻辑程序不动点语义的讨论 22 (2). 2005年6月.
|
|
|