prolog語言的三種基本語句是事實、規則和詢問,並且同有頭和無頭的HORN子句相對應;因而用PROLOG語言進行的程序設計可歸結為宣布事實,定義規則和提出詢問。
本文操作環境:windows7系統、Dell G3電腦。
Prolog(Programming in Logic的縮寫)是一種邏輯程式語言。它建立在邏輯學的理論基礎之上, 最初被運用於自然語言等研究領域。
Prolog簡介
一種邏輯程式設計語言。 1972年法國科莫勞埃小組為了提高歸結法的執行效率,研發出一個定理證明程式的程式執行器,取名為PROLOG(Programming In Logic),標誌著第一個邏輯程式設計語言PROLOG的誕生。 1974年及以後,R.科瓦爾斯基進一步從謂詞邏輯的HORN子句的角度闡明PROLOG的理論基礎,系統地提出邏輯程序設計的想法。
PROLOG語言的基本語句有三類,分別代表事實、規則和詢問,並同有頭(無體、有體)和無頭的HORN子句相對應。例如:
因而用PROLOG語言進行的程式設計可歸結為宣布事實,定義規則並提出詢問。
PROLOG程式的解釋執行過程採用特定的輸入歸結,即從目標語句出發求出它和原來子句集的一個子句的歸結式(尾部和頭部匹配),新的子句再與原來子句集的一個子句求歸結式,以此類推。任一時刻都不在兩個導出子句或原來子句集的兩子句間求歸結式。上例
⑥:-human(u),greek(u)(④和⑤的歸結式,mgu=u/x)
⑦:-greek(socarates)(②和⑥的歸結式,mgu=socarates/u)
⑧:-(③和⑦的歸結式,得空子句)
問題答案是u=socarates。由此可見,PROLOG解釋系統其實就是一個以歸結原理為基礎的定理證明程式或問題求解程序。
時空效率較低是影響PROLOG語言應用的重要問題,提高效率的途徑是:改進PROLOG解釋系統,採用PROLOG編譯系統,研發PROLOG機,引入用於控制的元規則,採用啟發式搜尋方式,啟用智慧回溯,採用協同、並發求解技術,開發平行處理機制。
由於PROLOG解釋程式能根據推理規則自動尋求問題的解,程式設計者就可把主要精力放在揭示物件間的邏輯關係上而不必過多地考慮過程的細節,這是向自動程序設計方向邁進了一步。但是PROLOG語言也具有一些非邏輯特徵。例如為了控制回溯,採用CUT技術(切斷技術,意即程式人員用CUT符!通知系統不再考慮過去已進行過但無用的搜尋通路而且也無須記錄回溯點的技術),引入謂詞assert(在資料庫中增添子句)ret ract(從資料庫中刪除子句)。這就使得系統的公理集合在推理過程中發生變化,這些都同一階邏輯的基本思想不符。因此PROLOG還不是嚴格意義下的邏輯程式設計語言。為了使其更加邏輯化,需要將語言的非邏輯成分限製到最低程度,這方面的研究正在進行中。
推薦:《程式設計影片》
以上是prolog語言的三種基本語句是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!