0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

簡(jiǎn)單了解人工智能語(yǔ)言——Lisp語(yǔ)言的由來

454398 ? 來源:itpub技術(shù)棧 ? 作者:行必果非空談 ? 2020-09-29 15:23 ? 次閱讀

自1958年以來,一種古老的語(yǔ)言一直存在,并被用來解決編程和計(jì)算機(jī)科學(xué)中的現(xiàn)代問題。

在1950年代中后期,麻省理工學(xué)院的約翰·麥卡錫有一個(gè)要解決的問題。作為人工智能項(xiàng)目的一部分,他需要一種可以處理數(shù)據(jù)列表的編程語(yǔ)言。以正式方式構(gòu)成的句子代表著世界的信息。計(jì)算機(jī)將導(dǎo)航和處理句子的列表來模仿人類推理。例如,通過比較由列表組織成的可能語(yǔ)句來回答問題。

用簡(jiǎn)單的話來說,如果你是計(jì)算機(jī),并且程序會(huì)詢問你在寒冷和饑餓時(shí)該怎么辦,請(qǐng)列出可能的結(jié)果列表,然后瀏覽該列表以找到合理的結(jié)果。例如,如果你感冒,你將傾向于與溫暖有關(guān)的句子,而避免與感冒有關(guān)的句子。這個(gè)問題拋給了麥卡錫,因?yàn)闆]有適合列表的軟件語(yǔ)言,麥卡錫必須創(chuàng)造自己的語(yǔ)言。

但是接下來發(fā)生了一件有趣的事情。麥卡錫創(chuàng)建了他的語(yǔ)言,他稱之為L(zhǎng)isp——List Processing的簡(jiǎn)寫。正如保羅·格雷厄姆所說,麥卡錫為編程所做的與歐幾里得為幾何所做的一樣。他從簡(jiǎn)單的運(yùn)算符和函數(shù)符號(hào)系統(tǒng)構(gòu)建了一種編程語(yǔ)言。但是他認(rèn)為最重要的語(yǔ)言部分,即用于處理數(shù)學(xué)語(yǔ)法的m表達(dá)式,對(duì)使用Lisp的人來說最不重要。麥卡錫語(yǔ)言的次要部分之一,用來描述數(shù)據(jù)的s表達(dá)式,在隨后的五十年中不斷影響著許多編程語(yǔ)言。

更加有趣的是,斯蒂芬·羅素將Lisp中的理論評(píng)估函數(shù)轉(zhuǎn)換為真實(shí)的機(jī)器代碼。 Lisp現(xiàn)在可以解釋用于描述數(shù)據(jù)的Lisp s表達(dá)式語(yǔ)句并運(yùn)行Lisp程序。 1962年,第一個(gè)將Lisp編譯為代碼的軟件將評(píng)估代碼(在代碼運(yùn)行時(shí)處理)和編譯代碼(在代碼運(yùn)行之前處理)混合在一起。在20世紀(jì)70年代,麻省理工學(xué)院的丹尼爾·愛德華茲向Lisp添加了垃圾回收功能,該功能可以釋放未使用的內(nèi)存以提高語(yǔ)言的效率。

最初,它是一種解決問題的優(yōu)雅極簡(jiǎn)方案,即作為人工智能項(xiàng)目的一部分來處理列表,它擁有完整的編程語(yǔ)言的種子,其創(chuàng)新思想可以影響數(shù)十種語(yǔ)言。例如,麥卡錫創(chuàng)建了現(xiàn)在常見的if-then-else條件語(yǔ)句,因此Lisp可以以緊密的結(jié)構(gòu)化方式處理列表。 格雷厄姆還認(rèn)為L(zhǎng)isp是思考軟件編程問題的第二種方法。 FORTRAN和C是另一種更為熟悉的軟件編程方式。

盡管關(guān)于哪種編程語(yǔ)言最好的爭(zhēng)論經(jīng)常引起激烈的討論,但對(duì)于Lisp作為最佳語(yǔ)言的爭(zhēng)論尤其強(qiáng)烈,這可能是由于其使用壽命長(zhǎng)。許多有才華和創(chuàng)造力的人都在Lisp上進(jìn)行工作,以完善和優(yōu)化該語(yǔ)言。沒錯(cuò),Lisp一直是解決編程和計(jì)算機(jī)科學(xué)問題的不尋常且別出心裁的解決方案。一方面,Lisp一直傾向于使用簡(jiǎn)單的靈活解決方案,而其他語(yǔ)言卻增加了復(fù)雜性(出于充分的理由)。麥卡錫的直覺是,隨著時(shí)間的推移,一種更簡(jiǎn)單的語(yǔ)言將提供更多的靈活性。

但是,對(duì)于軟件語(yǔ)言而言,沒有對(duì)與錯(cuò),最好或最壞的情況。在給定情況下,只有哪種語(yǔ)言最有效。 Lisp是第一種為FORTRAN及其后續(xù)語(yǔ)言提供替代語(yǔ)言的語(yǔ)言,同時(shí)又不偏離熟悉的語(yǔ)言。Lisp的不尋常部分之一是宏。如果你不知道,宏就是操控其他程序的代碼??紤]一個(gè)重復(fù)的計(jì)算任務(wù),可能是添加數(shù)字,然后將代碼放入一個(gè)塊中,然后調(diào)用該塊,而不是重新鍵入用于添加數(shù)字的代碼。如果你使用過Word宏,你就會(huì)明白,宏擴(kuò)展了編程語(yǔ)言的功能。

借助Lisp,宏還允許程序員將特定于域的語(yǔ)言嵌入Lisp中。宏可以直接訪問該語(yǔ)言所包含的解析器。使用Lisp,代碼是數(shù)據(jù)(列表),數(shù)據(jù)可以是代碼。它是一種可編程的軟件語(yǔ)言。函數(shù)可以像變量一樣傳遞并在代碼中的其他地方進(jìn)行處理,也可以像函數(shù)一樣直接進(jìn)行處理。Lisp的另一個(gè)功能是使用括號(hào)將數(shù)據(jù)組織到列表中。 Lisp中使用的語(yǔ)法或元素是原子和列表。原子是數(shù)字,字母和非字母數(shù)字字符,列表是原子或其他列表的序列??崭穹指粼雍土斜恚缦滤荆?/p>

(1 2 3 4)

在此示例中,原子1、2、3和4是列表中標(biāo)有括號(hào)的原子。

(1(2 3 4(5 6)))

在此示例中,第一個(gè)列表是原子1,一個(gè)由2、3、4組成的列表,以及它自己的由5和6組成的列表。

由于使用了宏且語(yǔ)法解析簡(jiǎn)單,因此Lisp被大量用于特定領(lǐng)域,例如人工智能項(xiàng)目。Lisp的工作方式也適用于多種方言。例如,更新的編程語(yǔ)言Clojure以Lisp的方式工作,解決了現(xiàn)代問題,例如同時(shí)處理多個(gè)請(qǐng)求,最大程度地減少了需要相同資源或需要按特定順序發(fā)生的進(jìn)程間的沖突。這些問題不同于麥卡錫的問題,即創(chuàng)建一種語(yǔ)言來管理人工智能語(yǔ)句和簡(jiǎn)單的數(shù)學(xué)符號(hào)系統(tǒng)的語(yǔ)句。

Lisp語(yǔ)言已演變?yōu)镃ommon Lisp和Scheme,以及各種方言。它們都以與原始語(yǔ)言規(guī)范類似的方式工作。在某些情況下,它們的命名和使用的元素不同。但是它們都使用相同的Lisp概念,包括宏。毫不夸張地說,了解Lisp類似于在《星球大戰(zhàn)》中成為絕地武士并獲得輕型軍刀一樣,是比較難的過程。當(dāng)你學(xué)習(xí)了至少一種語(yǔ)言后改用Lisp時(shí),Lisp的力量最為明顯。例如,在其他語(yǔ)言設(shè)置語(yǔ)言操作方式的基本規(guī)則的地方,Lisp則經(jīng)常讓編碼人員設(shè)置規(guī)則。在其他語(yǔ)言可能提供許多功能來完成大量任務(wù)的地方,Lisp通??梢杂幂^少的功能來完成相同的任務(wù)。Lisp活了超過半個(gè)世紀(jì),因?yàn)槌绦騿T不得不承認(rèn),十年又十年,Lisp依然是工作的最好工具。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 編程語(yǔ)言
    +關(guān)注

    關(guān)注

    10

    文章

    1916

    瀏覽量

    34379
  • 人工智能
    +關(guān)注

    關(guān)注

    1787

    文章

    46061

    瀏覽量

    235039
  • 計(jì)算機(jī)科學(xué)

    關(guān)注

    1

    文章

    142

    瀏覽量

    11317
  • LISP
    +關(guān)注

    關(guān)注

    0

    文章

    12

    瀏覽量

    7704
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    [轉(zhuǎn)載]最適合人工智能開發(fā)的5種編程語(yǔ)言

    ,并不是每種編程語(yǔ)言都能夠?yàn)殚_發(fā)人員節(jié)省時(shí)間及精力。所以我們整理了5種比較適用于人工智能開發(fā)的編程語(yǔ)言,希望能夠?qū)δ阌兴鶐椭?.PythonPython由于簡(jiǎn)單易用,是
    發(fā)表于 06-19 12:04

    了解AI人工智能背后的科學(xué)?

    的調(diào)整。 您的用戶無(wú)需采用新技術(shù)即可體驗(yàn)AI的收益??傊?,你越了解人工智能到底是什么,你就會(huì)越懂得如何利用它助長(zhǎng)你的業(yè)務(wù)!文章來源:怡海軟件(http://www.frensworkz.com/)
    發(fā)表于 09-25 10:03

    了解人工智能,30份書單不容錯(cuò)過(附電子版PDF下載)

    `了解人工智能,30份書單不容錯(cuò)過(附電子版PDF下載)鏈接: https://pan.baidu.com/s/1hscSmYK 密碼: a98i人工智能的學(xué)習(xí)能力讓人們感到恐懼,很多社會(huì)精英也都發(fā)
    發(fā)表于 11-02 11:48

    人工智能和機(jī)器學(xué)習(xí)的前世今生

    摘要: 閱讀本文以了解更多關(guān)于人工智能、機(jī)器學(xué)習(xí)和深度學(xué)習(xí)方面的知識(shí),以及它們對(duì)商業(yè)化意味著什么。如果正確的利用模式識(shí)別進(jìn)行商業(yè)預(yù)測(cè)和決策,那么會(huì)為企業(yè)帶來巨大的利益。機(jī)器學(xué)習(xí)(ML)研究這些模式
    發(fā)表于 08-27 10:16

    3種適用于人工智能開發(fā)的編程語(yǔ)言

    了3種比較適用于人工智能開發(fā)的編程語(yǔ)言,希望能夠?qū)δ阌兴鶐椭ythonPython由于簡(jiǎn)單易用,是人工智能領(lǐng)域中使用最廣泛的編程語(yǔ)言之一
    發(fā)表于 09-12 10:45

    適合人工智能開發(fā)的5種最佳編程語(yǔ)言優(yōu)缺點(diǎn)對(duì)比

    。關(guān)于最佳人工智能編程語(yǔ)言的爭(zhēng)論從未停止,所以今天Tesra超算網(wǎng)絡(luò)就來比較5種人工智能項(xiàng)目最常用的編程語(yǔ)言,并列出它們的優(yōu)缺點(diǎn)。一起來看看吧!Python由于其語(yǔ)法,
    發(fā)表于 09-29 10:27

    最適合人工智能開發(fā)的5種編程語(yǔ)言 相關(guān)資料分享

    最適合人工智能開發(fā)的5種編程語(yǔ)言
    發(fā)表于 07-02 06:52

    適用于人工智能開發(fā)的編程語(yǔ)言

    Python有何優(yōu)勢(shì)?Java是什么?Lisp語(yǔ)言有哪些功能?
    發(fā)表于 09-22 08:10

    什么是人工智能、機(jī)器學(xué)習(xí)、深度學(xué)習(xí)和自然語(yǔ)言處理?

    領(lǐng)域,包括機(jī)器學(xué)習(xí)、深度學(xué)習(xí)、數(shù)據(jù)挖掘、計(jì)算機(jī)視覺、自然語(yǔ)言處理和其他幾個(gè)學(xué)科。首先,人工智能涉及使計(jì)算機(jī)具有自我意識(shí),利用計(jì)算機(jī)視覺、自然語(yǔ)言理解和模仿其他感官。其次,人工智能涉及模
    發(fā)表于 03-22 11:19

    比較5種人工智能項(xiàng)目最常用的編程語(yǔ)言

    有人認(rèn)為Lisp是最好的人工智能編程語(yǔ)言,因?yàn)樗鼮殚_發(fā)人員提供了自由。在人工智能中使用Lisp,因其靈活性可以快速進(jìn)行原型設(shè)計(jì)和實(shí)驗(yàn),當(dāng)然這
    的頭像 發(fā)表于 03-13 09:59 ?8118次閱讀

    人工智能學(xué)什么語(yǔ)言

    人工智能學(xué)什么語(yǔ)言 人工智能(AI)是計(jì)算機(jī)科學(xué)的一個(gè)領(lǐng)域,旨在開發(fā)機(jī)器智能的能力。它是計(jì)算機(jī)科學(xué)中最吸引人的研究領(lǐng)域之一,目前已經(jīng)引發(fā)了廣泛的討論。這也引發(fā)了有關(guān)
    的頭像 發(fā)表于 08-12 16:58 ?587次閱讀

    人工智能用什么語(yǔ)言

    起著非常重要的作用。那么,人工智能用什么語(yǔ)言呢?本文將從編程語(yǔ)言的層面來探討。 1. Python Python是一門開源的高級(jí)編程語(yǔ)言,由于其簡(jiǎn)單
    的頭像 發(fā)表于 08-12 17:12 ?3343次閱讀

    人工智能語(yǔ)言有哪些

    人工智能語(yǔ)言有哪些 人工智能語(yǔ)言是一種編程語(yǔ)言,用于開發(fā)和實(shí)現(xiàn)人工智能技術(shù)。與傳統(tǒng)編程
    的頭像 發(fā)表于 08-12 17:12 ?3502次閱讀

    人工智能需要什么編程語(yǔ)言

    Python是最流行的人工智能編程語(yǔ)言之一。它是一種高級(jí)語(yǔ)言,它的語(yǔ)法簡(jiǎn)單易學(xué),容易上手。Python擁有眾多的第三方庫(kù)和工具,如TensorFlow和PyTorch等,這些庫(kù)和工具使
    的頭像 發(fā)表于 08-13 13:56 ?1661次閱讀

    自然語(yǔ)言處理的概念和應(yīng)用 自然語(yǔ)言處理屬于人工智能

      自然語(yǔ)言處理(Natural Language Processing)是一種人工智能技術(shù),它是研究自然語(yǔ)言與計(jì)算機(jī)之間的交互和通信的一門學(xué)科。自然語(yǔ)言處理旨在研究機(jī)器如何理
    發(fā)表于 08-23 17:31 ?1139次閱讀