自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

想成為更好的程序員嗎?學(xué)習(xí)Prolog語言吧

開發(fā) 前端 開發(fā)工具
Prolog如今不像以前那樣流行,想當(dāng)年它曾經(jīng)是Lisp語言的強(qiáng)有力競(jìng)爭(zhēng)者(至少對(duì)于歐洲的研究人工智能的人是這樣的)。然而,人們通常會(huì)認(rèn)為學(xué)習(xí)Lisp更具優(yōu)勢(shì),即使是從學(xué)習(xí)體驗(yàn)上講。

在計(jì)算機(jī)教學(xué)的課程中,有個(gè)傳統(tǒng)的現(xiàn)象,是否學(xué)過某一兩種的課程能夠成為判斷一個(gè)人能否深入理解一些計(jì)算機(jī)科學(xué)概念的分水嶺。盡管每個(gè)人都似乎能夠使用像Java這樣的語言進(jìn)行編程,但一些有趣的證據(jù)現(xiàn)象表明,計(jì)算機(jī)科學(xué)中最復(fù)雜的概念還是class,其中蘊(yùn)含了很多真正的智慧,能對(duì)你在C或Lisp語言的使用中提供很有用處的幫助。

在我的母校,一門關(guān)于Prolog的課程成了區(qū)分那些似是而非的和真正的計(jì)算科學(xué)學(xué)生之間的分界線。原因就在于,如果你的大腦能理解一個(gè)用Prolog寫成的Prolog解釋器,那么,你差不多就掌握了任何的編程概念。

然而,如今,學(xué)校里更感興趣的是那些市場(chǎng)化的語言,諸如JavaPython。就好像是他們?cè)谧非笠宰羁斓乃俣冉虝?huì)人們?nèi)绾尉幊?也許他們沒有意識(shí)到,但他們確實(shí)是在這樣做)。

關(guān)于Prolog的小事

Prolog如今不像以前那樣流行,想當(dāng)年它曾經(jīng)是Lisp語言的強(qiáng)有力競(jìng)爭(zhēng)者(至少對(duì)于歐洲的研究人工智能的人是這樣的)。然而,人們通常會(huì)認(rèn)為學(xué)習(xí)Lisp更具優(yōu)勢(shì),即使是從學(xué)習(xí)體驗(yàn)上講。

可是我認(rèn)為說Prolog也具有同樣的優(yōu)勢(shì)也不為過,有一些理由能說明為什么Prolog對(duì)大多數(shù)程序員來說仍然有很大的去學(xué)習(xí)的價(jià)值。

Prolog是純函數(shù)式語言。事實(shí)上,它是如此純粹,連它唯一能返回的值僅是字面上的true或false。在Prolog里,任何操作都和參數(shù)的綁定有關(guān),所以,沒有變量的修改更新——只有方法的調(diào)用。

這種語言提供了一種很簡(jiǎn)單的訪問數(shù)據(jù)庫的機(jī)制。在Prolog里,數(shù)據(jù)庫被看作是一個(gè)可以根據(jù)某種規(guī)則來查看的信息的集合。通過這種方式,對(duì)外部數(shù)據(jù)的訪問只是被當(dāng)做一種邏輯形式,不需要你做必須的操作來取回和讀數(shù)據(jù)。Prolog的這種模式減少了代碼和數(shù)據(jù)之間的阻抗,是一種很好的方式。

提供了一種簡(jiǎn)單的方式來表達(dá)解釋性的程序。Prolog是一種基于規(guī)則匹配的語言,這種方式對(duì)于程序員是透明 的。它力圖通過其內(nèi)部的規(guī)則匹配引擎來滿足各個(gè)布爾型函數(shù)的需求。你可以簡(jiǎn)單的把它想象成一個(gè)不確定的狀態(tài)機(jī),在你需要它的時(shí)候能做出正確的事情,不需要 編程活動(dòng)的介入。當(dāng)然,這種機(jī)制在沒有其它條件幫助的情況在并不能解決所有的問題,但它是很必要的,它能把開發(fā)人員從思考事情如何做成中解脫出來,轉(zhuǎn)而集 中關(guān)注有哪些已經(jīng)被完成。

總之,我認(rèn)為好的程序員應(yīng)該積極去發(fā)現(xiàn)不同方式的開發(fā)軟件的途徑。用一種不同的思維模式學(xué)習(xí)編程語言,比如邏輯性編程,這將會(huì)是對(duì)于傳統(tǒng)的思維過程 是一種精彩的挑戰(zhàn)。通過學(xué)習(xí)Prolog里程序是如何實(shí)現(xiàn)的,你能獲得一種更好的解決現(xiàn)實(shí)問題的思路,即使你需要實(shí)現(xiàn)的軟件是用C寫成的。

學(xué)習(xí)資料

關(guān)于Prolog的文獻(xiàn)并沒有多少,但有一本經(jīng)典的書叫做《The Craft of Prolog》。這本書放在那里我已經(jīng)好幾年沒動(dòng)過了,但我最初開始研究這種語言時(shí),它給我?guī)砹撕芏嗟目鞓贰T谀闶褂眠@種語言來工作時(shí),這本書仍然會(huì)成為你最好的Prolog知識(shí)的源泉。
 

原文鏈接:http://www.oschina.net/news/17379/why-learning-prolog-can-make-you-a-better-programmer

【編輯推薦】

  1. 在企業(yè)中越來越流行的8種編程語言
  2. 13種最為荒謬但很獨(dú)特的編程語言
  3. 2011年4月編程語言排行榜:告別Smalltalk
  4. 15件事造就有理想的程序員
  5. 老程序員10年技術(shù)生涯的思考 從C++到Java
責(zé)任編輯:陳貽新 來源: 外刊IT評(píng)論
相關(guān)推薦

2015-07-06 13:15:01

2014-03-31 11:01:39

2017-09-13 19:10:24

2015-06-30 08:59:28

Web前端程序員

2020-08-27 08:20:37

Java后端程序員

2020-11-10 14:50:49

程序員技術(shù)開發(fā)

2013-04-10 09:35:22

程序員

2015-11-30 11:01:07

程序員閱讀源代碼

2015-11-30 08:57:07

源代碼閱讀程序員

2023-06-27 17:42:24

JavaScript編程語言

2017-10-31 12:45:55

程序員學(xué)習(xí)語言

2023-04-26 08:00:00

程序員軟件開發(fā)

2015-04-03 10:49:07

2015-08-14 09:14:29

2015-08-14 09:15:34

轉(zhuǎn)行變成前途

2023-11-06 07:19:11

程序員GitHub社交媒體

2015-07-13 11:32:09

PHP程序員正確姿勢(shì)

2017-10-22 16:16:03

程序員編程代碼

2015-06-24 10:21:08

程序員數(shù)學(xué)

2013-03-28 15:50:37

程序員Java
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)