WIKI使用導(dǎo)航
站長百科導(dǎo)航
站長專題
- 網(wǎng)站推廣
- 網(wǎng)站程序
- 網(wǎng)站賺錢
- 虛擬主機
- cPanel
- 網(wǎng)址導(dǎo)航專題
- 云計算
- 微博營銷
- 虛擬主機管理系統(tǒng)
- 開放平臺
- WIKI程序與應(yīng)用
- 美國十大主機
Prolog
Prolog(Programming in Logic的縮寫)是一種邏輯編程語言。它建立在邏輯學的理論基礎(chǔ)之上, 最初被運用于自然語言等研究領(lǐng)域?,F(xiàn)在它已廣泛的應(yīng)用在人工智能的研究中,它可以用來建造專家系統(tǒng)、自然語言理解、智能知識庫等。同時它對一些通常的應(yī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)。在早期的機器智能研究領(lǐ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語言處理這個字符串,就需要很多方面的技術(shù)。則正是因為在c語言中,程序和數(shù)據(jù)是分開的。而在prolog就不存在這個問題,你甚至可以很輕松的編寫處理其它prolog程序的程序。
4. prolog程序?qū)嶋H上是一個智能數(shù)據(jù)庫
prolog的原理就是關(guān)系數(shù)據(jù)庫,它是建立在關(guān)系數(shù)據(jù)庫的基礎(chǔ)上的。在以后的學習中你會發(fā)現(xiàn)它和SQL數(shù)據(jù)庫查詢語言有很多相似之處。使用prolog可以很方便的處理數(shù)據(jù)。
5. 強大的遞歸功能
在其它的語言中,你也許已經(jīng)接觸過遞歸程序了。遞歸是一種非常簡潔的方式,它能夠有效的解決許多難題。而在prolog中,遞歸的功能得到了充分的體現(xiàn),你甚至都會感到驚奇,遞歸居然有如此巨大的能力。