第0章:為什么要學(xué)習(xí)Prolog

2018-02-24 16:03 更新

為什么要學(xué)習(xí)Prolog

當(dāng)我在大學(xué)的課程表里面發(fā)現(xiàn)Prolog這門課的時(shí)候,我十分驚訝,我在想:為什么我要學(xué)習(xí)Prolog呢?我會(huì)使用Java, C++和php編程,這些語(yǔ)言已經(jīng)強(qiáng)大到幾乎可以實(shí)現(xiàn)任何功能,而且有很多很多寫好的函數(shù)庫(kù)來(lái)供你使用,為什么我還要學(xué)習(xí)什么Prolog?

當(dāng)我開始學(xué)Prolog的時(shí)候,我發(fā)現(xiàn)這個(gè)語(yǔ)言的語(yǔ)法真是太奇怪了,有別于一般的編程語(yǔ)言,Prolog的程式是基于謂詞邏輯的理論。最基本的寫法是定立物件與物件之間的關(guān)系,之后可以用詢問目標(biāo)的方式來(lái)查詢各種物件之間的關(guān)系。系統(tǒng)會(huì)自動(dòng)進(jìn)行匹配及回溯,找出所詢問的答案。但是當(dāng)我真正了解Prolog的時(shí)候,才發(fā)現(xiàn),正因?yàn)镻rolog的這種特性才讓他異常的強(qiáng)大,簡(jiǎn)單的說(shuō),它是一個(gè)會(huì)自己思考的語(yǔ)言,它可以通過搜索自己的知識(shí)庫(kù)來(lái)找到問題的答案,這是其他的程序語(yǔ)言所做不到的。在這里,我無(wú)法過多的解釋Prolog的強(qiáng)大之處,我相信通過一段時(shí)間的學(xué)習(xí),你可以逐漸發(fā)現(xiàn)Prolog是一門值得學(xué)習(xí)的語(yǔ)言。你可能在將來(lái)的軟件開發(fā)事業(yè)中使用不到Prolog,但是你有關(guān)Prolog的知識(shí)能夠幫助你更好的使用其他的語(yǔ)言。

Prolog的用途

目前來(lái)說(shuō),Prolog主要用在人工智能和計(jì)算機(jī)語(yǔ)言的研究領(lǐng)域。Prolog和LISP是兩個(gè)主要的研究人工智能算法的工具,一個(gè)有趣的現(xiàn)象是:在美國(guó),研究者們喜歡用LISP,在歐洲,研究者們更傾向與使用Prolog進(jìn)行開發(fā)。這兩門語(yǔ)言沒有誰(shuí)好誰(shuí)壞之分,個(gè)人喜好罷了,事實(shí)上,在Prolog下面可以非常簡(jiǎn)單地實(shí)現(xiàn)一個(gè)LISP解析器,同樣的,在LISP下也可以輕易的實(shí)現(xiàn)一個(gè)Prolog解析器。在后面的章節(jié)里面,我和臺(tái)北小碼農(nóng)會(huì)教大家怎么做。

其次,得益于Prolog的模式匹配功能,Prolog非常適合快速的開發(fā)一個(gè)語(yǔ)言的解析器,這使得很多計(jì)算機(jī)科學(xué)家在開發(fā)新的程序語(yǔ)言時(shí),喜歡用Prolog先寫一個(gè)實(shí)現(xiàn),然后觀察大眾的反應(yīng),如何大眾認(rèn)為這個(gè)語(yǔ)言很好,就用更快的語(yǔ)言如C++來(lái)重新寫解釋器,如果大眾的反應(yīng)不好,就再用Prolog進(jìn)行修改。

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)