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

圖靈獎得主Barbara Liskov:為什么編程仍然很重要

新聞 前端
近日,英國科技網(wǎng)站The Register對麻省理工學(xué)院教授Barbara Liskov進(jìn)行了采訪。

 [[425161]] 

 

本文轉(zhuǎn)自雷鋒網(wǎng),如需轉(zhuǎn)載請至雷鋒網(wǎng)官網(wǎng)申請授權(quán)。

編者按:近日,英國科技網(wǎng)站The Register對麻省理工學(xué)院教授Barbara Liskov進(jìn)行了采訪。Barbara于2009年因其對編程語言和系統(tǒng)設(shè)計的貢獻(xiàn)而獲得圖靈獎,在本次采訪中,Barbara總結(jié)回顧了其在70年代創(chuàng)建CLU編程語言早期工作,并發(fā)表了一些關(guān)于CLU編程語言的最新見解。

在即將開幕的CNCC2021(中國計算機(jī)大會)上,Barbara也將作為特邀嘉賓發(fā)表演講,為幫助參會者更好了解Barbara的最新研究及對編程理念的思考,AI科技評論特此對The Register的文章進(jìn)行了編譯。 

自從Barbara Liskov因其對編程語言和系統(tǒng)設(shè)計的貢獻(xiàn)而獲得圖靈獎已經(jīng)有12年了,最近,她又發(fā)表了一些關(guān)于CLU編程語言的最新見解:為什么編程仍然很酷?

現(xiàn)年80多歲的Liskov, 正領(lǐng)導(dǎo)著麻省理工學(xué)院的編程方法論小組。最近,她一直在研究并行計算。

在90年代時她曾與一名學(xué)生一起開發(fā)了拜占庭容錯系統(tǒng)(Byzantine Fault Tolerance),如今她表示,這對充滿區(qū)塊鏈的世界來說意義重大。

近年來,隨著CLU在GitHub上的出現(xiàn),人們的注意力轉(zhuǎn)向了Liskov師徒在20世紀(jì)70年代初創(chuàng)造的這門語言時的早期工作。今天,我們詳細(xì)談?wù)劄槭裁粗钡浇裉?,編程仍然很重要?/p>

1. 傳統(tǒng)的編程并不溯源 error,也沒有泛型

當(dāng)初CLU起步時,整個編程語言的狀態(tài)太差,許多東西需要創(chuàng)新。

例如,我們不得不正視泛型的問題。在抽象數(shù)據(jù)類型的概念出現(xiàn)之前,實(shí)際上已經(jīng)需要泛型了。如果你寫一個排序例程,并不希望更替不同類型的數(shù)組時都要重寫。

然后是異常處理。Liskov回憶起關(guān)于恢復(fù)模型與替代方案的爭論:“問題是,在引發(fā)異常之后,控制權(quán)是否隨后恢復(fù)到引發(fā)異常的代碼,還是只是結(jié)束了該代碼?"

如果沒有一種方法從主流中分離單個異常情況,那么經(jīng)常出現(xiàn)在遠(yuǎn)離錯誤源的bug就越難追蹤。不幸的是,今天這種情況仍然會發(fā)生,還需要你一個一個debug。

數(shù)據(jù)抽象是一件大事,所有其他東西也都是隨之而來的。Liskov說到。“如果你回顧一下 90 年代 Java 發(fā)生的事情,他們想使用采用參數(shù)多態(tài)的方式,但他們沒有做,也從來想過優(yōu)化異常處理”。

2. 發(fā)明新的計算機(jī)語言

Liskov 感知現(xiàn)代編程語言的缺乏基礎(chǔ),無法支撐起整個現(xiàn)代應(yīng)用軟件行業(yè),因此將目光放在了CLU的研究上,并帶領(lǐng)學(xué)生一起投入其中。 

然而,到了20世紀(jì)70年代末,科研道路出現(xiàn)了岔路口: 要么嘗試將這門語言商業(yè)化,要么堅(jiān)持研究。Liskov選擇了研究,“在我的小組里,沒有一個學(xué)生想要創(chuàng)業(yè)。"

直到現(xiàn)在,Liskov 還一直贊揚(yáng)她的學(xué)生 Russ Atkinson、Alan Snyder 和 Craig Schaffert 以及Stephen Zilles。后者也在麻省理工學(xué)院,并于 1973 年與她一起改進(jìn) CLU 基礎(chǔ)概念。Bob Scheifler, Eliot Moss和Toby Bloom也出現(xiàn)在1979年10月的CLU參考手冊上。

她指出,現(xiàn)在發(fā)生的事情別無二致?,F(xiàn)如今把東西放到網(wǎng)上,并建立一個智囊社區(qū)是一個相對簡單的過程。但是在70年代,你必須掛靠一家公司,但即便如此,也很難獲得啟動資金。直到90年代初,情況才有好轉(zhuǎn)。

話說回來,CLU的本質(zhì)是它沒有全盤接受多年來困擾其他語言的糟粕。Liskov說 ,“一門語言一旦運(yùn)行,它就開始衍生遺留問題,致使你必須繼續(xù)支持所有已經(jīng)編寫的代碼。這就產(chǎn)生了負(fù)擔(dān)。"

在過去的20年里,Liskov參與的大部分開發(fā)工作都與c++有關(guān)。她說,“程序開發(fā)不再是用機(jī)器語言完成的。這是一個很大的進(jìn)步。只是提高了抽象的層次,模塊化的原則就已經(jīng)被很好地理解了。"

然而,直到今天,Liskov一直希望改變的事情是:語言被強(qiáng)制執(zhí)行封裝。但是當(dāng)大家在構(gòu)建一些低級平臺時,又必須違反封裝。Liskov認(rèn)為封裝是編程方法的關(guān)鍵工作--模塊化,即將數(shù)據(jù)和處理數(shù)據(jù)的方法捆綁到單個單元中,并將對數(shù)據(jù)內(nèi)部的訪問限制在這些方法中。這與讓編譯器強(qiáng)制執(zhí)行是兩碼事。

不過,其他方面也有所改善。與 1970 年代可用的存儲能力相比,今天的巨大存儲能力意味著在設(shè)計模塊時,“緊湊性”可以讓“優(yōu)雅”退居二線。我們總是希望它可用,但盡可能簡單。

3. 結(jié)語

Liskov現(xiàn)在仍對編程和技術(shù)充滿熱情,她說:“編程和軟件工程仍然是一個令人興奮的職業(yè)。我認(rèn)為要牢記接口和實(shí)現(xiàn)之間的區(qū)別,讓行為與實(shí)現(xiàn)分開定義。

“如果你沒有使用強(qiáng)制封裝的語言(不幸的是,大多數(shù)語言都強(qiáng)制封裝),那么你就必須自己強(qiáng)制封裝,這有助于維持區(qū)塊鏈系統(tǒng)完整性,廣義地說,超類的對象應(yīng)該可以被子類的對象替換而不破壞應(yīng)用程序。”

 

責(zé)任編輯:張燕妮 來源: 雷鋒網(wǎng)
相關(guān)推薦

2021-04-03 12:39:20

SQL數(shù)據(jù)庫編程語言

2014-07-16 09:45:36

DOS

2021-07-21 16:56:33

人工智能機(jī)器學(xué)習(xí)技術(shù)

2023-02-13 11:06:58

決策智能數(shù)據(jù)分析

2021-02-25 15:40:21

深度學(xué)習(xí)編程人工智能

2022-10-17 15:04:40

量子計算

2024-10-14 13:45:00

AI模型

2024-01-08 13:28:00

5G低延遲

2023-05-23 16:08:19

2022-01-10 23:39:18

Java測試開發(fā)

2022-11-07 11:22:33

2021-09-02 16:10:21

人工智能機(jī)器學(xué)習(xí)技術(shù)

2021-11-23 09:34:50

深度學(xué)習(xí)編程人工智能

2020-07-31 09:42:18

AI 數(shù)據(jù)人工智能

2022-05-11 15:08:16

加密貨幣私鑰安全

2022-08-24 15:03:21

數(shù)據(jù)智能數(shù)據(jù)分析

2013-01-08 14:58:48

Firefox OS

2015-10-19 17:57:33

容器OpenStack微服務(wù)

2011-03-03 21:12:47

圖靈獎人才

2024-01-04 12:54:00

AI數(shù)據(jù)
點(diǎn)贊
收藏

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