李玉香 沈 楠 李可強
(河北科技師范學院,河北 秦皇島 066004)
智能程序設計語言VISUAL PROLOG編程解析
李玉香 沈 楠 李可強
(河北科技師范學院,河北 秦皇島 066004)
VISU A L PR O LO G具有很強的邏輯推理能力,且易于編程,操作界面友好,近年來得到程序設計行業的廣泛關注。本文對VISU A L PR O LO G程序設計語言的主要特征進行概述,在此基礎上,對基于VISU A L PR O LO G語言的程序編程展開較為深入的探究。
智能程序設計語言;VISU A L PR O LO G;編程解析
VISUAL PROLOG是一種基于Windows系統的程序設計語言,以PROLOG語言為基礎,其基本原理與DOS系統的TURBO PROLOG十分相似。就操作難度而言,如果程序設計人員掌握TURBO PROLOG語言,就能夠很容易上手和學習VISUAL PROLOG。但從性能上來看,VISUAL PROLOG較以往的PROLOG語言來說,有了較大改進,不但具有友好的操作界面,同時增加了大量的內部謂詞,有效提升了程序編制效率。其交互式可視化操作環境也大大方便了程序員實現高效、簡便的應用開發。
2.1 VISUAL PROLOG的基本特征
VISUAL PROLOG為描述性程序設計語言,同時具有較強的邏輯思維及演繹推理性能,只要預先提供所要描述的內容以及規則,無需細致編繪具體操作步驟,VISUAL PROLOG語言就能夠通過演繹推理,得出結果。
2.2 具有自動實現匹配和回溯的功能
因VISUAL PROLOG語言無需提供細致的操作步驟,而是由VISUAL PROLOG語言根據程序規則進行邏輯推算,因此可能推算過程中出現偏差,如果出現這一情況,VISUAL PROLOG語言就會自動放棄這一推算過程,回溯到上一推算階段以另一種可能的情況進行推算,直到完成整個邏輯推算過程。
2.3 提供了交互式的環境
VISUAL PROLOG語言能夠為用戶提供一個交互式知識系統,供設計人員及用戶開發與使用,提升編程及使用效率。
2.4 VISUAL PROLOG編程具有遞歸性
智能程序設計需要將大型復雜的問題根據一定規則通過層層轉換的方式,最終遞歸為一個簡單問題進行求解,而VISUAL PROLOG語言具有較強的遞歸性,這就很大程度上減少了程序的代碼量,提升了程序設計效率,加強了PROLOG編程的可讀性,便于維護。
3.1 VISUAL PROLOG程序的構成
智能程序設計語言VISUAL PROLOG程序主要包括:論域(domains)、謂詞(predicates)、事實與規則(clauses)、目標(goal)這四個部分。其中domains論域部分的作用相當于Java語言中數據類型的聲明,表明論域的類型,起到域聲明的作用;predicates謂詞部分用來表明這段程序所用的謂詞;clauses規則部分表明程序所表述的事實與規則,VISUAL PROLOG語言主要就是通過clauses來實現邏輯推理的;goal目標部分是VISUAL PROLOG語言編程的基礎部分,也就是整個求解過程的依據。VISUAL PROLOG編程主要就是通過上述幾個部分所構成,由此對程序中所描述的事實、規則、目標、謂詞進行編制。
3.2 語法規則與書寫
3.2.1 事實書寫
程序所描述的事實是程序的核心,事實通常包括一個或是若干個對象,并由這些對象構成一定的關系,因此事實的書寫主要就包括關系與對象,不同對象用逗號表示,格式為:關系(對象1,對象2…對象n)。例如teacher(susan)這一程序書寫描述的事實即為蘇珊是教師;Likes(jimmy,apple),這一程序書寫描述的事實為吉米喜歡蘋果;Return(smith,jack,watch),描述的事實為史密斯還給杰克一塊表。
3.2.2 規則書寫
規則是描述各個對象主客體以及相互間構成邏輯關系的規則,其主要格式是:
關系(對象1,對象2…對象n):—關系(對象1,對象2…對象n),…(對象1,對象2…對象n).
比如:bird(X):—animal(X),has(X,feather).“:”前的規則頭表示總對象,“:”后的內容是構成總對象的邏輯關系,也就是由各個分對象形成構成總對象的規則。“—”的含義為if,就是如果具備“:”后面的規則就能構成“:”前的總對象,使所描述的內容成立。綜上,這一程序書寫所描述的內容為有羽毛的動物是鳥。此外,一套規則書寫最多能夠有兩個規則頭,就是兩個總對象。“:”后各對象間的“,”表示and或or。但“:”前的規則頭中,即便寫入了兩個規則頭,也不能用“,”加以區分。規則描述完畢需要用“.”表示完結。本小結案例中的X表示為變量,VISUAL PROLOG語言中的變量無需特別表明,只要以一個或若干個字母、單詞表示。
3.3 VISUAL PROLOG程序的執行(推理)過程
VISUAL PROLOG執行以目標(goal)部分為出發點,從(goal)開始搜索,查找目標所在程序中所描述的事實及規則,并進行自動匹配與回溯,直到實現目標的成立為止。如同前文所述,一個目標所包括的事實和規則可能并不唯一,因此在執行與推理過程中,就會通過回溯功能,不斷推理,直至推理出所包含的所有事實與規則。以下就以一個VISUAL PROLOG程序句子為例,探究VISUAL PROLOG程序的執行(推理)流程。
這是一個關于驗證john是否為bob的后代的VISUAL PROLOG句子。
首先goal目標部分為descendant(john,bob)。即后代(約翰,鮑勃),表示約翰是否為鮑勃的后代。domains論域部分為,name=symbol。表示以name(名字)作為本VISUAL PROLOG句子的變量。Predicates謂詞部分為child(name, name)。表示括號內后面的name是前面name的孩子。Clause事實與規則部分主要包括:
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),推理就以這一目標開始,之后自動匹配到這一句子的規則,首先分別分配各個規則,再以依次判斷各個規則是否成立,如果不成立則回溯到上一個推理過程,重新推理可能的結果,通過不斷通過回溯、匹配,層層遞歸達到目標成立的作用,具體流程見圖1。

圖1 VISUAL PROLOG程序的執行(推理)過程示意圖
通過上述過程,推理出bill是bob的孩子,而在clause規則部分中給出child(john,bill),john是bill的孩子,因此推理出john為bob的孫子,即為bob的后代,最終完成了整個執行(推理)過程。
VISUAL PROLOG是一種基于Windows系統的程序設計語言,具有很強的邏輯推理能力,能夠借助自動匹配、回溯進行層層遞歸,完成整個程序執行與推理過程。綜上所述,本文首先對VISUAL PROLOG編程的基本特征進行概述,在此基礎上,明確程序的編寫方式、方法,并結合實例對程序的執行與推理過程展開解析,希望本次研究能為相關人士提供些許參考作用。
[1]江耿豪.基于VisualProlog的自動答疑系統設計與實現[J].現代教育技術,2010(07):122-125.
[2]王玉剛,彭海軍,楊明緒.基于Visualprolog語言的專家系統[J].科技創新導報,2011(04):46-47. [3]武桂鑫,許爍.C++與Pr o l o g雙向數據交換實現混合控制架構下機器人任務規劃[J].計算機應用,2 0 15(S1):2 0 3-2 0 5+2 2 5.
[4]劉紅梅.基于Vi s u a l Pr o l o g語言的電噴發動機故障診斷系統的研究[D].西安:長安大學,2 0 14.
[5]彭軍.基于Vi s u a l Pr o l o g的數控系統故障診斷專家系統研究[D].南京:南京林業大學,2 0 13.
[6]陳雪梅.C A SL語言可視化運行平臺的設計與實現[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-),女,河北懷來人,碩士,教授,研究方向為計算機應用、計算機課程與教學論。
河北科技師范學院2 0 16年教學改革與研究項目:基于v i s u a l p r o l o g的知識表示與推理研究,項目編號:JY Y B 2 0 16 0 4。