這篇文章將為大家詳細(xì)講解有關(guān)prolog語(yǔ)言的三種基本語(yǔ)句是分別是哪些,小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。
梅江網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)建站!從網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)公司等網(wǎng)站項(xiàng)目制作,到程序開發(fā),運(yùn)營(yíng)維護(hù)。創(chuàng)新互聯(lián)建站2013年至今到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來(lái)保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)建站。
prolog語(yǔ)言的三種基本語(yǔ)句是事實(shí)、規(guī)則和詢問(wèn),并且同有頭和無(wú)頭的HORN子句相對(duì)應(yīng);因而用PROLOG語(yǔ)言進(jìn)行的程序設(shè)計(jì)可歸結(jié)為宣布事實(shí),定義規(guī)則和提出詢問(wèn)。
Prolog(Programming in Logic的縮寫)是一種邏輯編程語(yǔ)言。它建立在邏輯學(xué)的理論基礎(chǔ)之上, 最初被運(yùn)用于自然語(yǔ)言等研究領(lǐng)域。
Prolog簡(jiǎn)介
一種邏輯程序設(shè)計(jì)語(yǔ)言。1972年法國(guó)科莫?jiǎng)诎P〗M為了提高歸結(jié)法的執(zhí)行效率,研制出一個(gè)定理證明程序的程序執(zhí)行器,取名為PROLOG(Programming In Logic),標(biāo)志著第一個(gè)邏輯程序設(shè)計(jì)語(yǔ)言PROLOG的誕生。1974年及以后,R.科瓦爾斯基進(jìn)一步從謂詞邏輯的HORN子句的角度闡明PROLOG的理論基礎(chǔ),系統(tǒng)地提出邏輯程序設(shè)計(jì)的思想。
PROLOG語(yǔ)言的基本語(yǔ)句有三類,分別代表事實(shí)、規(guī)則和詢問(wèn),并同有頭(無(wú)體、有體)和無(wú)頭的HORN子句相對(duì)應(yīng)。
因而用PROLOG語(yǔ)言進(jìn)行的程序設(shè)計(jì)可歸結(jié)為宣布事實(shí),定義規(guī)則和提出詢問(wèn)。
PROLOG程序的解釋執(zhí)行過(guò)程采用特定的輸入歸結(jié),即從目標(biāo)語(yǔ)句出發(fā)求出它和原來(lái)子句集的一個(gè)子句的歸結(jié)式(尾部和頭部匹配),新的子句再與原來(lái)子句集的一個(gè)子句求歸結(jié)式,以此類推。任一時(shí)刻都不在兩個(gè)導(dǎo)出子句或原來(lái)子句集的兩子句間求歸結(jié)式。上例中
⑥:-human(u),greek(u)(④和⑤的歸結(jié)式,mgu=u/x)
⑦:-greek(socarates)(②和 ⑥的歸結(jié)式,mgu=socarates/u)
⑧:-(③和⑦的歸結(jié)式,得空子句)
問(wèn)題答案是u=socarates。由此可見,PROLOG解釋系統(tǒng)實(shí)際上就是一個(gè)以歸結(jié)原理為基礎(chǔ)的定理證明程序或問(wèn)題求解程序。
時(shí)空效率較低是影響PROLOG語(yǔ)言應(yīng)用的重要問(wèn)題,提高效率的途徑是:改進(jìn)PROLOG解釋系統(tǒng),采用PROLOG編譯系統(tǒng),研制PROLOG機(jī),引入用于控制的元規(guī)則,采用啟發(fā)式搜索方式,啟用智能回溯,采用協(xié)同、并發(fā)求解技術(shù),開發(fā)并行處理機(jī)制。
由于PROLOG解釋程序能根據(jù)推理規(guī)則自動(dòng)尋求問(wèn)題的解,程序設(shè)計(jì)者就可把主要精力放在揭示對(duì)象間的邏輯關(guān)系上而不必過(guò)多地考慮過(guò)程的細(xì)節(jié),這是向自動(dòng)程序設(shè)計(jì)方向邁進(jìn)了一步。但是PROLOG語(yǔ)言還具有一些非邏輯特征。例如為了控制回溯,采用CUT技術(shù)(切斷技術(shù),意即程序人員用CUT符!通知系統(tǒng)不再考慮過(guò)去已進(jìn)行過(guò)但無(wú)用的搜索通路而且也無(wú)須記錄回溯點(diǎn)的技術(shù)),引入謂詞assert(在數(shù)據(jù)庫(kù)中增添子句)ret ract(從數(shù)據(jù)庫(kù)中刪除子句)。這就使得系統(tǒng)的公理集合在推理過(guò)程中發(fā)生變化,這些都同一階邏輯的基本思想不符。因此PROLOG還不是嚴(yán)格意義下的邏輯程序設(shè)計(jì)語(yǔ)言。為了使其更加邏輯化,需要將語(yǔ)言的非邏輯成分限制到最低程度,這方面的研究正在進(jìn)行中。
關(guān)于“prolog語(yǔ)言的三種基本語(yǔ)句是分別是哪些”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。