李玉香 沈 楠 李可強
(河北科技師范學(xué)院,河北 秦皇島 066004)
智能程序設(shè)計語言VISUAL PROLOG編程解析
李玉香 沈 楠 李可強
(河北科技師范學(xué)院,河北 秦皇島 066004)
VISU A L PR O LO G具有很強的邏輯推理能力,且易于編程,操作界面友好,近年來得到程序設(shè)計行業(yè)的廣泛關(guān)注。本文對VISU A L PR O LO G程序設(shè)計語言的主要特征進行概述,在此基礎(chǔ)上,對基于VISU A L PR O LO G語言的程序編程展開較為深入的探究。
智能程序設(shè)計語言;VISU A L PR O LO G;編程解析
VISUAL PROLOG是一種基于Windows系統(tǒng)的程序設(shè)計語言,以PROLOG語言為基礎(chǔ),其基本原理與DOS系統(tǒng)的TURBO PROLOG十分相似。就操作難度而言,如果程序設(shè)計人員掌握TURBO PROLOG語言,就能夠很容易上手和學(xué)習(xí)VISUAL PROLOG。但從性能上來看,VISUAL PROLOG較以往的PROLOG語言來說,有了較大改進,不但具有友好的操作界面,同時增加了大量的內(nèi)部謂詞,有效提升了程序編制效率。其交互式可視化操作環(huán)境也大大方便了程序員實現(xiàn)高效、簡便的應(yīng)用開發(fā)。
2.1 VISUAL PROLOG的基本特征
VISUAL PROLOG為描述性程序設(shè)計語言,同時具有較強的邏輯思維及演繹推理性能,只要預(yù)先提供所要描述的內(nèi)容以及規(guī)則,無需細致編繪具體操作步驟,VISUAL PROLOG語言就能夠通過演繹推理,得出結(jié)果。
2.2 具有自動實現(xiàn)匹配和回溯的功能
因VISUAL PROLOG語言無需提供細致的操作步驟,而是由VISUAL PROLOG語言根據(jù)程序規(guī)則進行邏輯推算,因此可能推算過程中出現(xiàn)偏差,如果出現(xiàn)這一情況,VISUAL PROLOG語言就會自動放棄這一推算過程,回溯到上一推算階段以另一種可能的情況進行推算,直到完成整個邏輯推算過程。
2.3 提供了交互式的環(huán)境
VISUAL PROLOG語言能夠為用戶提供一個交互式知識系統(tǒng),供設(shè)計人員及用戶開發(fā)與使用,提升編程及使用效率。
2.4 VISUAL PROLOG編程具有遞歸性
智能程序設(shè)計需要將大型復(fù)雜的問題根據(jù)一定規(guī)則通過層層轉(zhuǎn)換的方式,最終遞歸為一個簡單問題進行求解,而VISUAL PROLOG語言具有較強的遞歸性,這就很大程度上減少了程序的代碼量,提升了程序設(shè)計效率,加強了PROLOG編程的可讀性,便于維護。
3.1 VISUAL PROLOG程序的構(gòu)成
智能程序設(shè)計語言VISUAL PROLOG程序主要包括:論域(domains)、謂詞(predicates)、事實與規(guī)則(clauses)、目標(goal)這四個部分。其中domains論域部分的作用相當(dāng)于Java語言中數(shù)據(jù)類型的聲明,表明論域的類型,起到域聲明的作用;predicates謂詞部分用來表明這段程序所用的謂詞;clauses規(guī)則部分表明程序所表述的事實與規(guī)則,VISUAL PROLOG語言主要就是通過clauses來實現(xiàn)邏輯推理的;goal目標部分是VISUAL PROLOG語言編程的基礎(chǔ)部分,也就是整個求解過程的依據(jù)。VISUAL PROLOG編程主要就是通過上述幾個部分所構(gòu)成,由此對程序中所描述的事實、規(guī)則、目標、謂詞進行編制。
3.2 語法規(guī)則與書寫
3.2.1 事實書寫
程序所描述的事實是程序的核心,事實通常包括一個或是若干個對象,并由這些對象構(gòu)成一定的關(guān)系,因此事實的書寫主要就包括關(guān)系與對象,不同對象用逗號表示,格式為:關(guān)系(對象1,對象2…對象n)。例如teacher(susan)這一程序書寫描述的事實即為蘇珊是教師;Likes(jimmy,apple),這一程序書寫描述的事實為吉米喜歡蘋果;Return(smith,jack,watch),描述的事實為史密斯還給杰克一塊表。
3.2.2 規(guī)則書寫
規(guī)則是描述各個對象主客體以及相互間構(gòu)成邏輯關(guān)系的規(guī)則,其主要格式是:
關(guān)系(對象1,對象2…對象n):—關(guān)系(對象1,對象2…對象n),…(對象1,對象2…對象n).
比如:bird(X):—animal(X),has(X,feather).“:”前的規(guī)則頭表示總對象,“:”后的內(nèi)容是構(gòu)成總對象的邏輯關(guān)系,也就是由各個分對象形成構(gòu)成總對象的規(guī)則?!啊钡暮x為if,就是如果具備“:”后面的規(guī)則就能構(gòu)成“:”前的總對象,使所描述的內(nèi)容成立。綜上,這一程序書寫所描述的內(nèi)容為有羽毛的動物是鳥。此外,一套規(guī)則書寫最多能夠有兩個規(guī)則頭,就是兩個總對象?!埃骸焙蟾鲗ο箝g的“,”表示and或or。但“:”前的規(guī)則頭中,即便寫入了兩個規(guī)則頭,也不能用“,”加以區(qū)分。規(guī)則描述完畢需要用“.”表示完結(jié)。本小結(jié)案例中的X表示為變量,VISUAL PROLOG語言中的變量無需特別表明,只要以一個或若干個字母、單詞表示。
3.3 VISUAL PROLOG程序的執(zhí)行(推理)過程
VISUAL PROLOG執(zhí)行以目標(goal)部分為出發(fā)點,從(goal)開始搜索,查找目標所在程序中所描述的事實及規(guī)則,并進行自動匹配與回溯,直到實現(xiàn)目標的成立為止。如同前文所述,一個目標所包括的事實和規(guī)則可能并不唯一,因此在執(zhí)行與推理過程中,就會通過回溯功能,不斷推理,直至推理出所包含的所有事實與規(guī)則。以下就以一個VISUAL PROLOG程序句子為例,探究VISUAL PROLOG程序的執(zhí)行(推理)流程。
這是一個關(guān)于驗證john是否為bob的后代的VISUAL PROLOG句子。
首先goal目標部分為descendant(john,bob)。即后代(約翰,鮑勃),表示約翰是否為鮑勃的后代。domains論域部分為,name=symbol。表示以name(名字)作為本VISUAL PROLOG句子的變量。Predicates謂詞部分為child(name, name)。表示括號內(nèi)后面的name是前面name的孩子。Clause事實與規(guī)則部分主要包括:
child(john,mary).
child(john,bill).
child(bill,bob).
child(bill,susan).
descendant(X,Y):—child(X,Y).
descendant(X,Z):—child(X,Y),descendant(Y,Z).首先這個句子的目標為descendant(john,bob),推理就以這一目標開始,之后自動匹配到這一句子的規(guī)則,首先分別分配各個規(guī)則,再以依次判斷各個規(guī)則是否成立,如果不成立則回溯到上一個推理過程,重新推理可能的結(jié)果,通過不斷通過回溯、匹配,層層遞歸達到目標成立的作用,具體流程見圖1。
圖1 VISUAL PROLOG程序的執(zhí)行(推理)過程示意圖
通過上述過程,推理出bill是bob的孩子,而在clause規(guī)則部分中給出child(john,bill),john是bill的孩子,因此推理出john為bob的孫子,即為bob的后代,最終完成了整個執(zhí)行(推理)過程。
VISUAL PROLOG是一種基于Windows系統(tǒng)的程序設(shè)計語言,具有很強的邏輯推理能力,能夠借助自動匹配、回溯進行層層遞歸,完成整個程序執(zhí)行與推理過程。綜上所述,本文首先對VISUAL PROLOG編程的基本特征進行概述,在此基礎(chǔ)上,明確程序的編寫方式、方法,并結(jié)合實例對程序的執(zhí)行與推理過程展開解析,希望本次研究能為相關(guān)人士提供些許參考作用。
[1]江耿豪.基于VisualProlog的自動答疑系統(tǒng)設(shè)計與實現(xiàn)[J].現(xiàn)代教育技術(shù),2010(07):122-125.
[2]王玉剛,彭海軍,楊明緒.基于Visualprolog語言的專家系統(tǒng)[J].科技創(chuàng)新導(dǎo)報,2011(04):46-47. [3]武桂鑫,許爍.C++與Pr o l o g雙向數(shù)據(jù)交換實現(xiàn)混合控制架構(gòu)下機器人任務(wù)規(guī)劃[J].計算機應(yīng)用,2 0 15(S1):2 0 3-2 0 5+2 2 5.
[4]劉紅梅.基于Vi s u a l Pr o l o g語言的電噴發(fā)動機故障診斷系統(tǒng)的研究[D].西安:長安大學(xué),2 0 14.
[5]彭軍.基于Vi s u a l Pr o l o g的數(shù)控系統(tǒng)故障診斷專家系統(tǒng)研究[D].南京:南京林業(yè)大學(xué),2 0 13.
[6]陳雪梅.C A SL語言可視化運行平臺的設(shè)計與實現(xiàn)[J].電腦與電信,2 0 10(4):3 3-3 5.
VISUAL PROLOG ProgrammingAnalysis
Li Yuxiang Shen Nan Li Keqiang
(Hebei Normal University of Science and Technology,Qinhuangdao 066004,Hebei)
VISUAL PROLOG has a strong ability of logical reasoning.It is easy to program and has friendly interface.In recent years,it gets extensive concern in the program design industry.This paper outlines the main features of the VISUAL PROLOG programming language,explores the programming language process in depth.
intelligent programming language;VISUAL PROLOG;programming analysis
TP312.1
A
1008-6609(2016)11-0037-02
李玉香(19 6 4-),女,河北懷來人,碩士,教授,研究方向為計算機應(yīng)用、計算機課程與教學(xué)論。
河北科技師范學(xué)院2 0 16年教學(xué)改革與研究項目:基于v i s u a l p r o l o g的知識表示與推理研究,項目編號:JY Y B 2 0 16 0 4。