久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

程序員祖師爺麥卡錫:得LISP者得天下

 AnonymousV臉 2019-02-11

AI學(xué)說話:新語言LISP的誕生

麥卡錫考慮過和IBM合作升級(jí)現(xiàn)有的FORTRAN,,但是IBM卻在這個(gè)時(shí)候退縮了。20世紀(jì)60年代初期,,在維納黨不斷的蠱惑下,,很多人都認(rèn)為計(jì)算機(jī)可能會(huì)威脅到他們的工作崗位,IBM可不希望自己好不容易造出來的又大又笨重的計(jì)算機(jī)滯銷,。因此,,為了打消客戶的疑慮,IBM停止了所有關(guān)于人工智能的研究,,把計(jì)算機(jī)說成是非智能的快速運(yùn)算設(shè)備,,它們百依百順、只會(huì)按要求行事,。

程序員把問題分解成更加容易管理的部分(結(jié)構(gòu)化編程),,因此大部分程序只需要服從“做這個(gè),然后做那個(gè)”指令的順序事件就行了,。反反復(fù)復(fù),。

面對(duì)越變?cè)綇?fù)雜的FORTRAN,麥卡錫不再糾纏于去升級(jí)它,,決定開發(fā)一個(gè)的新語言,,他要設(shè)計(jì)出一種越變?cè)胶?jiǎn)單的語言??墒荌BM不可能再為他買單,,該找誰要這筆研究經(jīng)費(fèi)呢?

蘇聯(lián)幫了他一臂之力,。1958年,,蘇聯(lián)發(fā)射的人造衛(wèi)星剛剛進(jìn)入太空,艾森豪威爾總統(tǒng)害怕在科技上落后蘇聯(lián),迅速成立了ARPA(先進(jìn)研究計(jì)劃署,,因特網(wǎng)就是在這個(gè)組織中誕生的),。ARPA就相當(dāng)于一個(gè)大的政府引導(dǎo)基金,促進(jìn)各個(gè)高校進(jìn)行科技成果轉(zhuǎn)移轉(zhuǎn)化,。政府希望這幫科學(xué)家能“出色”做點(diǎn)成績出來,,但其實(shí)政府自己也不知道什么才叫“出色”。連書面提案都沒準(zhǔn)備,,麥卡錫和明斯基很順利地就得到了一筆經(jīng)費(fèi),,并用這筆錢成立了MIT人工智能研究室。他們兩個(gè)有了一個(gè)大工作室,、一臺(tái)鍵控打孔機(jī),,此外還配備了一名秘書、兩個(gè)程序員和六個(gè)數(shù)學(xué)專業(yè)的研究生,。

有天才的科學(xué)家,,有不差錢的實(shí)驗(yàn)室,還有最先進(jìn)的設(shè)備,,打敗FORTRAN的新語言很快就誕生了,。

前面說了,F(xiàn)ORTRAN語言相當(dāng)于把你用紙筆計(jì)算的過程通過計(jì)算機(jī)實(shí)現(xiàn),,它是用一種按部就班的方式解決問題,。如果真實(shí)世界要復(fù)雜的多,計(jì)算機(jī)總會(huì)遇到筋疲力盡的情況,,更何況大部分事情也不是用幾個(gè)簡(jiǎn)單的公式就能算出來的,。比如,在客觀世界里,,我們能找到一個(gè)嚴(yán)格的圓形或者三角形嗎?找不到,。自然界里一個(gè)嚴(yán)格意義上的幾何圖形都沒有,存在的只是幾何規(guī)律,。所以需要我們輸入的數(shù)據(jù)非常多樣化,,而且通常也不會(huì)有什么固定的格式。

以下棋為例,,車馬炮都有各自的走法各自的規(guī)則,,儲(chǔ)存這些規(guī)則需要的結(jié)構(gòu)和數(shù)據(jù)自然都不一樣;再加上這些規(guī)則還是不斷變化的,,比如卒在沒過河之前只能一步一步往前挪,,過了河之后橫著走豎著走都可以,這就需要卒的規(guī)則能夠隨時(shí)修改、增加,、刪除和改變,。

所有的這些,都需要放開對(duì)數(shù)組空間大小的約束,,允許實(shí)時(shí)動(dòng)態(tài)地增加和減少數(shù)據(jù),。麥卡錫給出的解決方法是:加兩個(gè)括號(hào)。

對(duì),,沒錯(cuò),,就是括號(hào)

比如你想做計(jì)算題嗎?你可以用(time 3 (plus 1+2))表示3*(1+2),;再比如,,你想去購物嗎?你可以用(milk egg apple)表示你的購物清單,。加上了括號(hào)之后,,數(shù)組就變成了鏈表,原來只能按照規(guī)定好的順序和步驟一步一步往下走的程序,,現(xiàn)在可以通過指針和遞歸函數(shù)在鏈表之間自由地活動(dòng),。如果需要修改的話,就分配出新的內(nèi)存空間,,不需要用時(shí)就把已分配的空間刪掉,,不會(huì)造成內(nèi)存空間的浪費(fèi)。

如果把程序比作貨物的話,,用FORTRAN編程就像是讓碼頭工人背著沉重的貨物爬上踏板,,鉆進(jìn)貨艙,按照順序整整齊齊地碼在卡車?yán)?。如果有一個(gè)貨物放錯(cuò)地方了,,或者需要調(diào)整一下堆放的位置,就必須先把其他貨物都卸下來,,再進(jìn)行重新調(diào)整,。

而麥卡錫發(fā)明的新語言就像是搬運(yùn)界的集裝箱,先把貨物分好類,,裝進(jìn)集裝箱里,,直接運(yùn)輸集裝箱就可以了。如果需要增減貨物,,找到相應(yīng)集裝箱的序號(hào)就行,。

這個(gè)新語言就叫LISP(List Processing language),也可以把它叫作“表處理語言”,。

當(dāng)當(dāng)當(dāng)~當(dāng)

簡(jiǎn)單來說,,相比FORTRAN,,LISP有以下3個(gè)主要特點(diǎn):

LISP特點(diǎn)

1. 計(jì)算用的是符號(hào)表達(dá)式而不是數(shù);

2. 控制結(jié)構(gòu)基于函數(shù)的復(fù)合,;

3. 用遞歸作為描述問題和過程的方法,。

獨(dú)一無二的宏

隨著工作的深入,麥卡錫希望進(jìn)一步加強(qiáng)LISP的表達(dá)能力,。為了能讓LISP可以明確地表達(dá)任何可計(jì)算函數(shù),,他加入了一個(gè)叫做“求值”(eval)的功能?!扒笾怠痹试S程序定義新的函數(shù),,然后在不需要暫停程序運(yùn)行的情況下,將這個(gè)新定義的函數(shù)作為程序的一部分執(zhí)行,。

這就很厲害了,。比如說,由于金融市場(chǎng)時(shí)刻都在變化,,所以股票交易所必須每周7天,、每天24小時(shí)不停地提供計(jì)算服務(wù)。如果有個(gè)分析師寫了一個(gè)程序,,發(fā)現(xiàn)可以用新的方法分析納斯達(dá)克的股票數(shù)據(jù),,那他馬上就能在不中斷機(jī)器的情況下用這個(gè)新的模型。

也就是說,,無論在什么時(shí)候,,整個(gè)程序都是可用的。LISP并不真正區(qū)分讀取期,、編譯期和運(yùn)行期,。你可以在讀取期編譯或運(yùn)行代碼;也可以在編譯期讀取或運(yùn)行代碼,;還可以在運(yùn)行期讀取或者編譯代碼,。

聽起來很熟悉,這不就是通用圖靈機(jī)嗎,?由于求值函數(shù)可以帶動(dòng)并執(zhí)行任何函數(shù),,所以它扮演的是'通用圖靈機(jī)' 的角色,是其他計(jì)算機(jī)的集大成者,。(可戳回顧圖靈之死:他拯救了世人,卻被世人遺棄)

圖靈機(jī):我又來啦,!

再往深處想,,這是不是意味著我們可以寫出一種能夠自己編程的程序?這可能聽起來很怪異,,但是對(duì)于LISP語言卻是可以實(shí)現(xiàn)的,。最常用的做法就是使用宏,。

LISP的宏是獨(dú)一無二的,連現(xiàn)在的很多高級(jí)語言里都沒有宏,。一般的源代碼程序經(jīng)過編譯器解析就會(huì)生成解析樹,,宏的特別之處在于,你可以通過它控制解析樹,,進(jìn)行任意的存取操作,,還可以生成其他程序。

什么是宏,?就是把一些命令組織在一起,,作為一個(gè)單獨(dú)命令完成一個(gè)特定任務(wù)。玩過《魔獸世界》的人可能會(huì)發(fā)現(xiàn),,游戲里面有多達(dá)13個(gè)種族和11大職業(yè),,每個(gè)角色的表情動(dòng)作都十分繁雜。這個(gè)時(shí)候該怎么同時(shí)激活2種以上的法術(shù),,或者施法的同時(shí)用游戲中的聊天系統(tǒng)發(fā)送信息呢,?解決方式是“宏命令”。通過建立宏命令,,你就能讓暗夜精靈在喝水的同時(shí)施放影遁,,也能讓獵人在標(biāo)記敵對(duì)目標(biāo)的同時(shí)喊話提醒隊(duì)友。

所以通過宏,,我們既可以改進(jìn)某個(gè)程序讓它變得更短,,也可以加入一種新語言進(jìn)來,讓它成為LISP的一部分,。LISP就像是修煉了吸星大法的任我行,,通過吸收別人的內(nèi)功讓自己變得越來越強(qiáng)大。宏讓LISP擁有了一種很奇特的語法,,或者說它根本就沒有語法,。

其實(shí)說到底,不管是機(jī)器語言還是匯編語言,,他們共同的問題都在于一寫就容易寫很長,,寫長了就容易出現(xiàn)BUG,但是用高級(jí)語言就可以寫的很短,,可讀性也很強(qiáng),。而且不同型號(hào)計(jì)算機(jī)的機(jī)器語言是不完全相同的,如果用高級(jí)語言就不用針對(duì)每種機(jī)型寫代碼,,重新寫編譯器就行,。

編譯器處理的高級(jí)語言代碼叫做源碼,處理之后的機(jī)器碼叫做目標(biāo)碼,。后來又出現(xiàn)了開放源代碼的潮流:公開源碼并且可以隨意修改,。開源讓我們可以修改軟件,,同時(shí)也能自己動(dòng)手修正BUG。

電影《源代碼》海報(bào),,這是一部2011年的美國科幻驚悚片

到今天,,高級(jí)語言大概有幾百種,但是最高級(jí)的主流語言,,也只是剛剛接近LISP的水平,,而且根本做不到像LISP那樣強(qiáng)大。Java,、Perl,、Python、Ruby……你會(huì)發(fā)現(xiàn),,排在越后面的語言,,越像LISP。Python模仿LISP,,甚至把很多設(shè)計(jì)錯(cuò)誤的功能都一起模仿了,。至于Ruby,如果回到1975年,,你聲稱它是一種LISP方言,,沒有人會(huì)反對(duì)。編程語言現(xiàn)在的發(fā)展,,不過剛剛趕上1958年LISP語言的水平,。

埃里克·雷蒙德在《如何成為一名黑客》這本書里說,如果你想當(dāng)個(gè)黑客,,可以從Python和Java開始入手,,因?yàn)楸容^容易掌握。然后開始學(xué)C和Perl,,前者用來對(duì)付Unix系統(tǒng),,后者可以用來管理系統(tǒng)和開發(fā)CGI腳本。最后,,他建議,,如果你把黑客當(dāng)做自己的人生目標(biāo),就必須要學(xué)LISP,。即使實(shí)際工作中很少會(huì)用到LISP,,但只要一旦掌握了LISP,就會(huì)感覺到它帶給你的極大啟發(fā),。

如果你是投資人,,想要評(píng)估一家技術(shù)公司的水平怎么樣,偷偷教你一個(gè)訣竅:看他們的程序員招聘啟事,。如果要求應(yīng)聘者有Oracle數(shù)據(jù)庫經(jīng)驗(yàn)的公司,,你可以直接放棄了;如果招聘C++或者Java,,說明水平一般,;如果招聘Perl或者Python,說明技術(shù)還有點(diǎn)門檻,;如果你遇到一家技術(shù)公司里面的程序員都會(huì)寫LISP,,相信我,不管這家公司是做什么的,,都千萬千萬不要錯(cuò)過它,!

一句話,LISP是目前最強(qiáng)大的編程語言,。為什么LISP會(huì)如此強(qiáng)大,?因?yàn)檫@種語言本質(zhì)上不是一種技術(shù),而是數(shù)學(xué),。數(shù)學(xué),,永遠(yuǎn)是時(shí)代的弄潮兒。

麥卡錫其(奇)人

繼續(xù)說麥卡錫,。

LISP編程語言的創(chuàng)造者,,人工智能領(lǐng)域的泰斗——麥卡錫

1927年9月4日,麥卡錫生于波士頓,。他的父親是一個(gè)愛爾蘭移民,,做過木匠和漁夫,但同時(shí)也是一個(gè)發(fā)明家和工會(huì)積極分子,,擁有兩項(xiàng)很冷門的專利,,一個(gè)是捻船縫機(jī)技術(shù),還有一個(gè)是桔汁冷凍機(jī),。麥卡錫的母親是來自立陶宛的猶太人,,熱心于女權(quán)運(yùn)動(dòng),還當(dāng)過記者,。

麥卡錫的父母在20世紀(jì)30年代都曾參加美國共產(chǎn)黨,。受到父母的影響,麥卡錫對(duì)社會(huì)問題也比較關(guān)注,,還倡儀過修改“人權(quán)法案” ,。

麥卡錫還是個(gè)特別喜歡刺激的人,他對(duì)攀巖,、跳傘,、駕駛滑翔機(jī)這些運(yùn)動(dòng)情有獨(dú)鐘,曾和他的第二任妻子維拉·沃特森一起攀登過世界上不少大山高峰,。這個(gè)沃特森也是一位程序員,,但她更知名的身份卻是登山運(yùn)動(dòng)員,。她是第一位獨(dú)自攀上西半球第一高峰阿空加瓜山(海拔6960米)的女性,但不幸的是,,她隨后在一次攀登位于尼泊爾中部的阿那波爾那峰(海拔8075米)的探險(xiǎn)活動(dòng)中不幸遇難,。

麥卡錫的性格決定了他不是個(gè)循規(guī)蹈矩的人。因此當(dāng)MIT沒有對(duì)LISP語言采取足夠重視時(shí),,他決定前往美國西海岸——那里有新興的反主流文化,,教授可以扎著長發(fā),穿有破洞的牛仔褲上課,。

后來,,麥卡錫對(duì)MIT的評(píng)價(jià)是:跟那里的人解釋LISP語言,就像是跟挖溝工人說明蒸汽鏟子有什么價(jià)值一樣費(fèi)勁,。

People prefer dealing with machinery to dealing with bureaucracies.– jmc 1986

相比起應(yīng)付官僚制度,,人們更愿應(yīng)付機(jī)器?!溈ㄥa(1986)

在西海岸,,麥卡錫發(fā)現(xiàn)這里不存在官僚保護(hù),如魚得水的他迅速在斯坦福大學(xué)建立起了第二個(gè)人工智能實(shí)驗(yàn)室,,跟原先MIT的那個(gè)分庭抗禮,。很快,斯坦福大學(xué)的這個(gè)實(shí)驗(yàn)室成為了加州黑客的天堂,,并催生了黑客情懷,。在之后15年的時(shí)間里,一個(gè)由硬件和軟件工程師組成的驚人陣容迅速涌入了這個(gè)實(shí)驗(yàn)室,,蘋果創(chuàng)始人史蒂夫·喬布斯多年以后都還對(duì)這個(gè)設(shè)立在山上的實(shí)驗(yàn)室念念不忘,。這里保留了反主流文化氛圍,透過它,,一股對(duì)人工智能領(lǐng)域樂觀的情緒蔓延開來,,充斥著整個(gè)20世紀(jì)60年代。

1971年,,麥卡錫獲得圖靈獎(jiǎng),,在頒獎(jiǎng)典禮致辭中,他宣稱:每個(gè)人都需要編程,,因?yàn)檫@將是我們與仆人對(duì)話的方式,。只需要十年的時(shí)間,就能打造出“全智能機(jī)器”,。

其實(shí),,麥卡錫一直都只是把LISP看做一種手段,目的是達(dá)到他的主要目標(biāo):制造一臺(tái)像人那樣有智慧的機(jī)器。

我們后面可以看到,,在人工智能歷史上的第一個(gè)十年中,,這種樂觀無處不在。

參考文獻(xiàn):

[1]黑客與畫家(Hackers & Painters: Big Ideas from the Computer Age),;Paul Graham,;譯者:阮一峰;ISBN:9787115249494

[2]Google面試官Gayle McDowell:找一家能讓你開心的公司(圖靈訪談)http://www./article/66910

前文回顧(圖靈系列)

50年代~60年代

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn),。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多