国漫手机壁纸

一个热爱编程的82岁老太太:2008年图灵奖得主Barbara Liskov访谈录

新智元报道来源:网络编辑:David【新智元导读】theregister近日专访了2008年图灵奖得主BarbaraLiskov,这位CLU语言的主要发明人是首位获计算机博士的美国女性,师从约翰·麦卡锡。已经年过80的Liskov提起编程依然热情满满。你听说过CLU

NetSmell 出品

  新智元报道

  来源:网络

  编辑:David

  【新智元导读】theregister 近日专访了 2008 年图灵奖得主 Barbara Liskov,这位 CLU 语言的主要发明人是首位获计算机博士的美国女性,师从约翰·麦卡锡。已经年过 80 的 Liskov 提起编程依然热情满满。

  你听说过 CLU 语言吗?也许没有。

  这门发明于上世纪 70 年代的计算机编程语言并未获得广泛使用,和 Python、C++、Java、C#这些后来大名鼎鼎的热门语言相比,CLU 的名气确实没那么响。

  但实际上,在这些热门语言中都能看到 CLU 的影子。

CLU 是 C++ 的模板的主要启发者。 CLU 的异常处理机制影响了后来的语言如 C++ 和 Java。 Python 和 C# 所包含的迭代器,最早出现在 CLU 中。 Python 和 Ruby 从 CLU 中引入了传共享调用、yield 语句和多赋值。 https://zh.wikipedia.org/wiki/CLU

  CLU 的发明人是 2008 年图灵奖得主 Barbara Liskov 和她在 MIT 的学生们。最近,随着 CLU 被放到了在 Github 上,Liskov 团队在上世纪 70 年代创建 CLU 编程语言的早期工作开始受到越来越多人的关注。

  师从麦卡锡,师徒都得过图灵奖

  Barbara Liskov,1939 年生,美国国家工程院院士、美国艺术与科学院院士和计算机机械协会 (ACM) 院士。1961 年在加州大学伯克利分校获得数学学士学位, 1968 年在斯坦福大学获得计算机科学博士学位,是第一位获得计算机科学博士学位的美国女性。

  她的导师是 1971 年图灵奖得主、第一次提出“人工智能”一词的约翰·麦卡锡。

  她于 1996 年获得女性工程师协会成就奖,2004 年获得 IEEE 约翰·冯·诺依曼奖章。

  2008 年因“对编程语言和系统设计的实践与理论基础,尤其是数据抽象化、容错和分布式计算的贡献”获得图灵奖。

  2002 年,Liskov 被《探索》杂志评为科学界最重要的 50 位女性之一。该杂志称她“上世纪 70 年代在数据抽象方面的工作,为编写更加复杂和微妙的计算机程序铺平了道路,同时也是开发在网络连接的分布式计算机集合上运行的应用程序的关键人物。”

  现在是 2021 年,距离 Barbara Liskov 因对编程语言和系统设计的实践和理论基础的贡献获得图灵奖已经 13 年了,如今,这位 CLU 编程语言的创始人仍在继续致力于解决一些有趣的问题。

  近日,theregister 对这位今天仍活跃在学术一线的计算机科学家进行了采访。

  年过八十,依然热爱编程的老太太

  “在 CLU 开始起步时,由于当时编程语言的状态,有很多东西需要创新。”她说。

  “我们那时候必须面对的是泛型问题,因为在抽象数据类型的概念提出之前,实际上已经需要泛型了。如果要写一个分类程序,谁都不想每次都重写不同类型的数组。但当时人们还没有真正认识到这个问题。

  “当有了抽象数据类型之后就很清楚了,我们需要泛型,所以必须弄清楚如何处理泛型问题,这很重要。”

  Barbara Liskov 在讨论抽象数据类型的设计

  还有错误处理问题,这在当时往往有点原始。Liskov 回忆起当时关于恢复模型与替代方案的争论:“问题是,在错误出现之后,能否通过控制恢复引发错误的那段代码,还是只是结束了那段代码?我们必须正视这一点。”

  “如果没有办法在主数据流之外单独处理错误,那么就像今天很多时候一样,代码中很多错误的出现与错误的源头离得非常远,很难追踪到。

  除了错误处理,Liskov对迭代器的进一步创新也很突出。“这说明我们在某种程度上领先于时代,因为我们正在研究人们尚未真正面对的东西。”

  “数据抽象是一件大事。”她说,“但所有其他的东西也都跟着来了。”

  “如果你回顾一下上世纪 90 年代 Java 发生的事情,看看 Java 是如何使用参数多态的,其实就是没有使用。”Liskov 笑道,

  当然,Liskov 团队将 CLU 作为一个研究项目来开展,因此不受多个团体的需求的影响。但到了 70 年代后期,分歧出现了:是尝试将这个语言商业化,还是继续坚持走研究的道路。Liskov 选择了后者。“我的团队中没有一个学生感觉自己在创业。”

  在今天,先把一些研究成果发在网上,再建立一个与之相关社区并没有多难,但上世纪 70 年代末的情况完全不同。“那时候要想这么做,必须通过公司,”她说。

  编程第一要务:做真正需要做的事

  在过去 20 年里,Liskov 参与的大部分开发工作都是在 C++ 中进行的。“很多开发工作已经不再在机器编程语言中进行了。这是一个很大的改进,”她说,“数据抽象化的程度得到了提升,而且我确实认为模块化的原则已经很好理解了。”

  不过,“令我感到遗憾,或者说与我的期望不同的是,我希望编程语言强制执行封装。”

  “确实,”她承认,“有时你不得不违反这个原则,尤其是在构建一些低级平台时。”

  然而,Liskov 认为封装(即将数据与处理该数据的方法一起打包成一个单元)是编程的一个关键部分:这样做“有利于模块化方式的运行”。

  “在学术上,你可以加一些东西进去,然后和你的学生讨论它有多么重要,这样很好。但想让编译器强制执行一些东西,就完全是另一回事了。”

  不过和上世纪 70 年代相比,今天我们拥有巨大的存储能力,在设计模块时,结构的紧凑可以设计上的精巧:“是的,一方面尽量追求可用性,另一方面又要尽量简洁。”

  Liskov 对她的学生 Russ Atkinson、Alan Snyder 和 Craig Schaffert 以及同样在 MIT 并于 1973 年与她一起改进 CLU 基础概念的 Stephen Zilles 给予极高的赞扬。

  另外,Bob Scheifler、Eliot Moss 和 Toby Bloom 也出现在 1979 年 10 月的 CLU 参考手册中。《CLU 的历史》一文中给出了更详细的贡献人员名单。

  尽管已经年过八十,Liskov 仍然对编程和技术充满热情。她曾说过:

  你可以用编程语言做几乎任何事情。但问题在于:你要做真正需要做的事情。这些事情是容易做,还是难做?

  今天,这句话仍然值得我们思考。

  https://www.theregister.com/2021/09/16/barbara_liskov_interview/

  https://news.mit.edu/2008/liskov-0630

  https://en.wikipedia.org/wiki/Barbara_Liskov

  https://medium.com/a-computer-of-ones-own/barbara-liskov-inventor-of-abstract-data-types-9f8908fdcf86

显示余下内容
相关文章:
  1. 信用卡 PIN 码很容易猜测
  2. 神经元簇发能模拟 AI 学习策略
  3. 蜘蛛丝可能根本不具有抗菌性质
  4. 佳能因禁止无墨水打印机扫描被起诉
  5. DeepMind盈利后开始「买买买」!收购机器人模拟平台MuJoCo,全面开源
  6. 分析师:新MacBook Pro搭载自家芯片,苹果利润率更高了
  7. 格芯提交上市申请IPO,筹资约26亿美元
  8. 美股周二:中概股普涨 阿里涨超6% 高途涨逾12%
  9. 搭配自研处理器与安卓12,谷歌新机Pixel 6起价599美元
  10. 摩根士丹利:马斯克有望凭SpaceX成首位万亿美元富豪
  11. 《鱿鱼游戏》助奈飞三季度新增用户翻倍,股价近新高
  12. DOTA 2又上热搜了 为什么这次大家到处刷“猛犸”?
  13. 多位游戏巨头联合希望美国政府监管盗版和作弊网站
  14. Google Play Data Safety开始接受开发者申请:2022年将强制执行
  15. 价格欺诈投诉引发公益诉讼 京东“划线价”格式条款须整改
国漫完美世界:清漪 老婆 绝美 美女手机壁纸
 

发表回复

您的电子邮箱地址不会被公开。