1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        她改變了編程

        共 3392字,需瀏覽 7分鐘

         ·

        2020-02-22 23:21


        十三 邊策 發(fā)自 凹非寺?
        量子位 報(bào)道 | 公眾號(hào) QbitAI

        本文經(jīng)AI新媒體量子位(公眾號(hào) ID: QbitAI)授權(quán)轉(zhuǎn)載,轉(zhuǎn)載請(qǐng)聯(lián)系出處

        如果你上過編程課,一定被老師提醒過:不要使用goto語句!

        因?yàn)間oto語句不僅讓代碼的可讀性很差,隨意的跳出還會(huì)給程序帶來安全隱患。

        但是這種幾乎被現(xiàn)代編程明令禁止的語句,在計(jì)算機(jī)誕生之初卻司空見慣。

        早期的程序員用goto來解決代碼無法預(yù)料的后果,遇到什么問題就用一句goto,讓程序跳轉(zhuǎn)到某個(gè)指定語句。

        直到一位MIT的女教授,才讓我們徹底擺脫了goto語句的支配,她就是Barbara Liskov。

        8876c5d43adde35185861af968c0dbea.webp

        芭芭拉·利斯科夫(Barbara Liskov),圖源:QuantaMagazine

        剛滿80歲,榮譽(yù)等身,她是全美首批獲得計(jì)算機(jī)博士學(xué)位的女性之一,集馮諾依曼獎(jiǎng)、圖靈獎(jiǎng)于一身。

        甚至可以說她發(fā)明了構(gòu)成現(xiàn)代程序基礎(chǔ)的體系結(jié)構(gòu)。

        但在此之前,她是一位曾經(jīng)因?yàn)樾詣e申請(qǐng)普林斯頓數(shù)學(xué)研究生被拒的人。

        所以Barbara Liskov究竟是怎樣的傳奇計(jì)算機(jī)科學(xué)家?

        在其80歲壽誕之際,我們一起看看她改變了編程的故事。

        好的設(shè)計(jì),才有好的代碼

        上世紀(jì)40年代,美國發(fā)明了第一臺(tái)電子計(jì)算機(jī)ENIAC。雖然早期的計(jì)算機(jī)體積很大,但提供的功能簡單,那時(shí)候的編程也不必考慮太復(fù)雜的結(jié)構(gòu)。

        goto語句是最簡單的方法,只需把程序的執(zhí)行引導(dǎo)到對(duì)應(yīng)的某一句即可。

        80fa630434fcc6b992a9b6b9faeb98d5.webp

        廣泛使用的goto語句雖然簡單,但是卻沒有邏輯章法。用這種方式編寫的程序既難以閱讀,又容易造成危險(xiǎn),甚至還鬧出過人命。

        曾經(jīng)有一種名為Therac-25的軟件控制的放射治療機(jī),就因?yàn)槭褂昧诉^時(shí)程序設(shè)計(jì)方法,導(dǎo)致6名患者接受嚴(yán)重超劑量的輻射,造成了死亡事故。

        如果沒有一個(gè)程序設(shè)計(jì)的基本架構(gòu),計(jì)算機(jī)硬件的發(fā)展已經(jīng)超出了程序員能力所能承受之重。

        終于在60年代,計(jì)算機(jī)程序設(shè)計(jì)迎來了新的理論,當(dāng)時(shí)B?hm和Jacopini兩位計(jì)算機(jī)學(xué)家提出,可以用結(jié)構(gòu)化的程序完全代替goto語句,只需使用順序、選擇和循環(huán)三種結(jié)構(gòu)即可。

        這種結(jié)構(gòu)一直被使用至今。

        1974年,彼時(shí)僅35歲的MIT女教授和她的學(xué)生將這種思想付諸實(shí)踐,他們發(fā)明了一種新的編程語言CLU。

        5d77d1955b099602c9e658a013fc3953.webp

        CLU完全拋棄了goto語句,雖然這種編程語言沒有被廣泛采用,但是它在面向編程語言的發(fā)展過程中起過非常重要的作用。

        CLU中的一些概念在許多方面影響了后來的編程語言,對(duì)后來出現(xiàn)的一些面向?qū)ο缶幊蹋∣OP)語言做出了許多貢獻(xiàn)。

        后來出現(xiàn)的Java、C++、C#、Python都是CLU的后代。

        CLU的關(guān)鍵貢獻(xiàn)包括抽象數(shù)據(jù)類型、共享調(diào)用、迭代器、多個(gè)返回值、類型安全的參數(shù)化類型和變量類型。

        Liskov對(duì)程序設(shè)計(jì)的貢獻(xiàn)不僅于此,現(xiàn)代面向?qū)ο蟪绦蛟O(shè)計(jì)的5大原則“SOLID”中的L就是以她名字命名的里氏替換原則(Liskov Substitution principle)。

        1987年,Liskov在一次大會(huì)的主題演講中最早提出了這一原則,即繼承必須確保超類所擁有的性質(zhì)在子類中仍然成立。

        70b7303d21825fda9b85e8b05d2eb266.webp

        遵循里氏替換原則編寫的程序,克服了繼承中重寫父類造成的可復(fù)用性變差的缺點(diǎn)。

        而且這一原則還保證了程序的正確性,擴(kuò)展的子類不會(huì)給已有的系統(tǒng)引入新的錯(cuò)誤,降低了代碼出錯(cuò)的可能性。

        直至今日,所有面向?qū)ο缶幊痰某绦騿T還在遵守著Liskov提出的這項(xiàng)原則。

        傳奇的女性,Barbara Liskov

        如今Liskov的學(xué)術(shù)成就已經(jīng)獲得的廣泛的承認(rèn)。

        但在那個(gè)年代,作為一個(gè)科學(xué)家,還是個(gè)女性,真的挺不容易,曾因?yàn)樾詣e申請(qǐng)普林斯頓數(shù)學(xué)研究生遭拒。

        a6d1120705772524c6adfd1fe2249f13.webp

        Liskov在伯克利讀本科期間,100人的班里,只有一兩名女性同學(xué),她就是其中之一。

        她修完了所有和數(shù)學(xué)、科學(xué)相關(guān)的課程,而學(xué)校當(dāng)時(shí)卻不鼓勵(lì)女性同學(xué)這樣的做法。

        也從來沒有人對(duì)她說:“嘿,你這樣做很好,不考慮跟我們一起合作嗎?”之類的話。

        好在Liskov的母親沒有當(dāng)面反對(duì)過她(雖然只是鼓勵(lì)她要在學(xué)校好好表現(xiàn))。

        但她對(duì)此不以為然,直到在斯坦福讀研畢業(yè)時(shí),才意識(shí)到“性別”問題的存在。

        因?yàn)樵谒厴I(yè)的時(shí)候,沒有任何人找她談工作的事情。

        而像她的男性同學(xué)(Raj Reddy)就能被招聘到學(xué)術(shù)方向的崗位。

        要知道,在那個(gè)年代,就業(yè)有點(diǎn)像“包分配”——顧問會(huì)通過與全國各地部門的合作來安排畢業(yè)生的工作。

        但對(duì)于Liskov,可謂是“無人問津”。

        在這之前,Liskov已經(jīng)向MIT求職過,但得到的反饋卻是“不考慮擔(dān)任教授”。

        發(fā)生這種情況時(shí),你會(huì)認(rèn)為“是我自己還不夠優(yōu)秀”。

        “但同時(shí)我也認(rèn)為,計(jì)算機(jī)科學(xué)是開放的?!?/p>

        幸好Liskov在Mitre公司的第一份工作還算不錯(cuò),她在這家公司期間,深入的研究了編程方法。

        3a7b8924fa44f75a9fb82eccbd67ad17.webp

        Barbara Liskov正在設(shè)計(jì)抽象數(shù)據(jù)類型(ADT)

        這項(xiàng)研究讓她獲得了一個(gè)一等獎(jiǎng)?wù)撐摹?/p>

        1971年,她針對(duì)這項(xiàng)研究發(fā)表了一次演講,而后便受到了MIT和伯克利的邀請(qǐng)。

        事情至此才發(fā)生了改變。

        剛剛進(jìn)入MIT時(shí),大約1000名員工中只有約10名左右的女性教員。但其實(shí),MIT有很多杰出的女性并不在教職人員之列。

        在科學(xué)領(lǐng)域,很少有人能夠意識(shí)到女性做出的一些基礎(chǔ)性貢獻(xiàn)。

        90年代,她回到斯坦福參加了一個(gè)部門慶典。一群老教授們談?wù)撝靶@關(guān)系網(wǎng)(old-boy network)”的八卦,他們說:

        有個(gè)年輕女人表現(xiàn)得確實(shí)非常不錯(cuò),但那是因?yàn)樗藿o了一個(gè)教授。

        Liskov覺得這件事情真是愚昧至極。

        在Liskov擔(dān)任計(jì)算機(jī)科學(xué)系主任之前的10年里,部門只發(fā)現(xiàn)了一位值得聘用的女性。

        2001-2004年,在她擔(dān)任部門領(lǐng)導(dǎo)期間,Liskov共聘用了7名女性,她并沒有濫竽充數(shù),其中的3名初級(jí)教員都非常優(yōu)秀。

        再后來,Liskov獲得了圖靈獎(jiǎng),即便擁有了如此殊榮,還是免不了質(zhì)疑的聲音。

        02349d00dae80630a6fc337097a76149.webp

        2008年度美國計(jì)算機(jī)學(xué)會(huì)(ACM)圖靈獎(jiǎng)(Turing Award)

        她做的工作,沒有我不知道的。為什么她會(huì)獲得圖靈獎(jiǎng)?

        哦,那個(gè)工作不是她做的,是一個(gè)男同事替她做的。

        “簡直一派胡言”,Liskov說道。

        即便到了足夠開放的今天,她也認(rèn)為現(xiàn)在的情況并不比那時(shí)好:

        也許我是幸運(yùn)的。如果我大學(xué)一畢業(yè)就結(jié)婚了,我可能會(huì)有一個(gè)完全不一樣的結(jié)果。

        如何看待AI的未來

        那么,Liskov對(duì)人工智能和機(jī)器學(xué)習(xí)發(fā)展有什么看法呢?

        我博士學(xué)位的工作是與John McCarthy合作研究人工智能。

        John提出了「國際象棋殘局」這個(gè)主題,由于我沒有玩過國際象棋,所以我讀了相關(guān)書籍,并將國際象棋的一些算法翻譯成了計(jì)算機(jī)算法。

        那時(shí)候,人們認(rèn)為,一個(gè)明智的做法是讓程序按照人類的意愿來行事,但現(xiàn)在已然不是這樣了。

        現(xiàn)在的機(jī)器學(xué)習(xí)程序在多數(shù)情況下效果還是不錯(cuò)的。但有些情況下效果卻并不是理想,人們不知道問題出在了哪里。

        如果我在研究一個(gè)問題的時(shí)候,需要知道它的工作原理,那我不會(huì)用機(jī)器學(xué)習(xí)方法。

        人工智能是一種應(yīng)用,而不是一門核心科學(xué)。

        而對(duì)于計(jì)算機(jī)科學(xué)的發(fā)展,Liskov比較擔(dān)心的是互聯(lián)網(wǎng),包括假新聞和安全問題。

        a5bc138faa11e74dfff9dd949b465a49.webp

        若是一對(duì)離婚的夫婦,丈夫在發(fā)表一些對(duì)妻子誹謗的內(nèi)容,包括她的住址之類的私人信息,那就很可能引發(fā)一些非??膳碌氖虑?。

        這要回溯到80年代。那時(shí)候,15所大學(xué)和幾個(gè)政府單位實(shí)驗(yàn)室通過互聯(lián)網(wǎng)連在一起。我們都是好朋友。他們當(dāng)時(shí)的態(tài)度是,網(wǎng)站不應(yīng)該對(duì)內(nèi)容負(fù)責(zé),這將扼殺他們的發(fā)展。

        而現(xiàn)如今,這種態(tài)度還在繼續(xù)。

        我們現(xiàn)在解決當(dāng)下問題的時(shí)候,需要的不僅僅是技術(shù),還需要法律來解決人們的不良行為,解決隱私與安全的問題。

        One More Thing

        分享Liskov對(duì)女性在事業(yè)發(fā)展過程中的一點(diǎn)建議:

        在你能真正站起來之前,保持低調(diào)。而后再去擁抱成功。

        傳送門

        博客:
        https://www.quantamagazine.org/barbara-liskov-is-the-architect-of-modern-algorithms-20191120/

        維基百科:
        https://en.wikipedia.org/wiki/Barbara_Liskov

        個(gè)人主頁:
        https://www.csail.mit.edu/person/barbara-liskov

        1b04a001378a8f842f31aab77d21e447.webp

        近期精彩內(nèi)容推薦:??

        11f51896de12e11b6b3fd2222d10c3b9.webp?Python是一門神奇的語言!11f51896de12e11b6b3fd2222d10c3b9.webp?IntelliJ IDEA 的 2020 ,真的很牛皮!11f51896de12e11b6b3fd2222d10c3b9.webp?刪庫跑路真的發(fā)生,技術(shù)總監(jiān)干的!11f51896de12e11b6b3fd2222d10c3b9.webp?2020年Java框架排行榜,誰居榜首?



        16c0ea8abb66789faf194034473c93a1.webp

        在看點(diǎn)這里af33d9edd4266809e8b6f45be38744d2.webp好文分享給更多人↓↓

        瀏覽 45
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評(píng)論
        圖片
        表情
        推薦
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            无码A片 伊人欧美视频 | 成人视频网站18 | 中文在线√天堂 | 天天免费看黄片 | 国产剧情一区二区在线观看 | 无码免费视频AAAAAAAA | 激情网站视频 | 欧美日韩偷拍视频 | 国产精品亚洲lv粉色 | 欧美三级生活片 |