久久精品水蜜桃av综合天堂,久久精品丝袜高跟鞋,精品国产肉丝袜久久,国产一区二区三区色噜噜,黑人video粗暴亚裔

Prolog

來自站長百科
(重定向自Programming in Logic
跳轉至: 導航、? 搜索

PrologProgramming in Logic的縮寫)是一種邏輯編程語言。它建立在邏輯學的理論基礎之上, 最初被運用于自然語言等研究領域。現(xiàn)在它已廣泛的應用在人工智能的研究中,它可以用來建造專家系統(tǒng)、自然語言理解、智能知識庫等。同時它對一些通常的應用程序的編寫也很有幫助。使用它能夠比其他的語言更快速地開發(fā)程序,因為它的編程方法更象是使用邏輯的語言來描述程序。

歷史[ ]

Prolog語言最早由Aix-Marseille大學的Alain Colmerauer與Phillipe Roussel等人于60年代末研究開發(fā)。1972年被公認為是Prolog語言正式誕生的年份,自1972年以后,分支出多種Prolog的方言。最主要的兩種方言為Edinburgh和Aix-Marseille。最早的Prolog解釋器Roussel建造,而第一個Prolog編譯器則是 David Warren編寫的。   

Prolog一直在北美和歐洲被廣泛使用。日本政府曾經(jīng)為了建造智能計算機而用Prolog來開發(fā)ICOT第五代計算機系統(tǒng)。在早期的機器智能研究領域,Prolog曾經(jīng)是主要的開發(fā)工具。   

80年代Borland開發(fā)的Turbo Prolog,進一步普及了Prolog的使用。1995年確定了ISO Prolog標準。   

目前比較流行的實現(xiàn)工具包括 SWI-Prolog, Yap

特點[ ]

1. prolog程序沒有特定的運行順序,其運行順序是由電腦決定的,而不是編程序的人。

從這個意義上來說,prolog程序不是真正意義上的程序。所謂程序就是按照一定的步驟運行的計算機指令,而prolog程序的運行步驟不由人來決定。它更像一種描述型的語言,用特定的方法描述一個問題,然后由電腦自動找到這個問題的答案。舉個極端的例子,你只需要把某個數(shù)學題目告訴它,它就會自動的找到答案,而不像使用其他的語言一樣,必須人工的編制出某種算法。   

2. prolog程序中沒有if、when、case、for這樣的控制流程語句   

前面已經(jīng)說了,程序的運行方式有電腦自己決定,當然就用不到這些控制流程的語句了。通常情況下,程序員不需要了解程序的運行過程,只需要注重程序的描述是否全面,不過prolog也提供了一些控制流程的方法,這些方法和其他語言中的方法有很大的區(qū)別,希望你在以后的學習當中能夠融會貫通。   

3. prolog程序和數(shù)據(jù)高度統(tǒng)一   

在prolog程序中,是很難分清楚哪些是程序,哪些是數(shù)據(jù)的。事實上,prolog中的所有東西都有相同的形式,也就是說數(shù)據(jù)就是程序,程序就是數(shù)據(jù)。舉一個其他語言的例子:如果想用c語言編寫一個計算某個數(shù)學表達式的程序很簡單(比如:a=2+5*4),因為這是一段程序。但是如果想編寫一個計算用戶輸入的表達式的值的程序就很困難了。因為用戶輸入的是一段數(shù)據(jù)(字符串),如果想讓c語言處理這個字符串,就需要很多方面的技術。則正是因為在c語言中,程序和數(shù)據(jù)是分開的。而在prolog就不存在這個問題,你甚至可以很輕松的編寫處理其它prolog程序的程序。   

4. prolog程序實際上是一個智能數(shù)據(jù)庫   

prolog的原理就是關系數(shù)據(jù)庫,它是建立在關系數(shù)據(jù)庫的基礎上的。在以后的學習中你會發(fā)現(xiàn)它和SQL數(shù)據(jù)庫查詢語言有很多相似之處。使用prolog可以很方便的處理數(shù)據(jù)。   

5. 強大的遞歸功能   

在其它的語言中,你也許已經(jīng)接觸過遞歸程序了。遞歸是一種非常簡潔的方式,它能夠有效的解決許多難題。而在prolog中,遞歸的功能得到了充分的體現(xiàn),你甚至都會感到驚奇,遞歸居然有如此巨大的能力。

相關條目[ ]

參考來源[ ]