資源描述:
《邏輯程序設(shè)計語言范型Prolog語言控制抽象》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、21九月2021程序設(shè)計語言范型ProgrammingLanguagesParadigms教師:張榮華華北電力大學(xué)計算機(jī)系軟件教研室(保定)邏輯程序設(shè)計語言范型Prolog語言控制抽象第三部分第七章Prolog語言控制抽象第七章-3參考文獻(xiàn)LearnPrologNow!byPatrickBlackburn,JohanBos,andKristinaStriegnitzhttp://www.coli.uni-saarland.de/~kris/learn-prolog-now/Prolog語言控制抽象第七章-4內(nèi)容1.Prol
2、og語言概述1.1Prolog的基本元素1.2Prolog實驗環(huán)境2.合一2.1項的合一2.2歸結(jié)2.3基于合一編程3.控制流Prolog語言控制抽象第七章-51.Prolog語言概述Prolog(ProgramminginLogic)誕生于20世紀(jì)70年代初法國馬賽大學(xué)作為自然語言理解項目的一部分研制成功目前,愛丁堡大學(xué)開發(fā)的Prolog版本使用最為廣泛。迄今最能體現(xiàn)邏輯程序設(shè)計思想的邏輯編程語言“說明式”的語言;采用一階謂詞演算說明(描述)問題知識庫(事實和規(guī)則)的描述采用子句(Clause)形式控制流機(jī)制置換、合一歸
3、結(jié)回溯、深度優(yōu)先搜索反向推理Prolog語言控制抽象第七章-6內(nèi)容1.Prolog語言概述1.1Prolog的基本元素1.2Prolog實驗環(huán)境2.合一2.1項的合一2.2歸結(jié)2.3基于合一編程3.控制流Prolog語言控制抽象第七章-71.1Prolog的基本元素【例1】:水平線與垂直線問題。使用兩個謂詞:vertical/2和horizontal/2vertical(line(point(X,Y),point(X,Z))).horizontal(line(point(X,Y),point(Z,Y))).vertical
4、(line(point(1,1),point(1,3))).yes事實查詢/目標(biāo)horizontal(line(point(1,1),point(2,Y))).Y?=?1?;nohorizontal(line(point(2,3),P)).P?=?point(_G434,3)?;noProlog語言控制抽象第七章-81.1Prolog的基本元素【例2】求解以下六個英語單詞的縱橫字謎問題。abalone,abandon,anagram,connect,elegant,enhance事實規(guī)則Prolog語言控制抽象第
5、七章-91.1Prolog的基本元素Prolog程序的語句(子句)包括:(1)事實(Facts)沒有體部的horn子句,即被假定為真的命題。(2)規(guī)則(Rules)有頭和體的horn子句,只有體部的每個項都為真,頭部才為真。father(john,jim).grandparent(Person1,Person2):-parent(Person3,Person2),parent(Person1,Person3).HeadBodyProlog語言控制抽象第七章-101.1Prolog的基本元素Prolog語句由項(term)構(gòu)
6、成①常量原子(atom):Prolog的符號值以小寫字母開始的一串字母、數(shù)字、下劃線或用單引號界定的一串任何可打印的ASCII字符。整數(shù)②變量以大寫字母開始一串字母、數(shù)字和下劃線;下劃線(_)表示匿名變量;注意與命令式語言中變量的區(qū)別。③結(jié)構(gòu)(謂詞/復(fù)雜項)vertical(line(point(X,Y),point(X,Z))).Prolog語言控制抽象第七章-111.1Prolog的基本元素Prolog程序運(yùn)行通過提問查詢知識庫使用分號(;)查詢多個解(multipleanswers)分號有特定的語義:表示結(jié)束當(dāng)前合一
7、,回溯查找其它可滿足的解。Prolog語言控制抽象第七章-12內(nèi)容1.Prolog語言概述1.1Prolog的基本元素1.2Prolog實驗環(huán)境2.合一2.1項的合一2.2歸結(jié)2.3基于合一編程3.控制流Prolog語言控制抽象第七章-131.2Prolog實驗環(huán)境SWI-Prolog(推薦使用!)http://www.swi-prolog.org/安裝文件(注意順序安裝)(1)SWI-PrologforMS-Windows(version5.10.1)(2)SWI-Prolog-Editorhttp://lakk.bil
8、dung.hessen.de/netzwerk/faecher/informatik/swiprolog/indexe.htmlProlog語言控制抽象第七章-14內(nèi)容1.Prolog語言概述1.1Prolog的基本元素1.2Prolog實驗環(huán)境2.合一2.1項的合一2.2歸結(jié)2.3基于合一編程3.控制