Barbara Liskov:2008 图灵奖女性得主,面向对象编程的「Liskov 替换原则」创始人

2008 年,MIT 计算机系教授 Barbara Liskov 成为图灵奖历史上第二位女性得主(第一位是 2006 年的 Frances Allen)。她获奖的原因不是某个具体算法,而是她 1987 年提出的「Liskov 替换原则」(Liskov Substitution Principle) ——这是面向对象编程的四大设计原则之一,今天每一个 Java/Python/C++ 程序员都在用的 SOLID 原则中的「L」。

斯坦福数学系起步(1939-1961):Barbara Liskov(原姓 Huberman)1939 年 11 月 7 日出生于美国加州洛杉矶。她的父亲是工程师,母亲是心理学家。1957 年进入斯坦福大学数学系——那一年女性在斯坦福数学系的比例不到 5%,她常常是教室里唯一的女生。

1961 年 Liskov 拿到数学学士学位。毕业后她进入波士顿 Clipper 石油公司做程序员——这是她第一次接触计算机。在 Clipper 她发现「编程」和「数学」一样需要严谨的逻辑推理,这让她决定转行计算机科学。

MIT 硕士与博士(1961-1964):1961 年 Liskov 进入 MIT 数学系读硕士,1962 年转计算机系(当时 MIT 计算机系刚独立成系)。1964 年她成为 MIT 第一位计算机科学女博士,导师是 Ivan Sutherland。博士论文主题是计算机下棋的程序——她开发的程序能在 IBM 1620 上击败业余玩家。

一、问题一:抽象能不能被替换——1968 年:抽象与接口:她留下的那条约束至今仍在生效

1972 年 Liskov 加入 MIT 计算机系担任助理教授,1977 年晋升副教授,1980 年晋升正教授。2001 年她被授予「Institute Professor」——这是 MIT 教授的最高荣誉,全校只有 12 个。

学术影响:Liskov 在 MIT 53 年的学术生涯培养了 30 多位博士生、100 多位学术孙辈。其中包括今天活跃在 MIT、CMU、Stanford 的程序语言研究者——Liskov 学派是程序语言设计领域最有影响力的学术派别之一。

女科学家身份:Liskov 是程序语言和分布式系统领域最有影响力的女性科学家。在她职业生涯早期,女性在计算机科学领域几乎不被看见——她是 1960-1980 年代计算机科学界少数几位女性领导者之一,2008 年图灵奖让她成为女性程序员的榜样。

二、1939 年的波士顿,和一个拒绝学理科的女学生

CLU 的设计动机(1973-1974):1970 年代 Liskov 在 MIT 教授程序设计课程时,发现现有语言(FORTRAN、ALGOL、COBOL)都没有「抽象数据类型」(Abstract Data Type, ADT) 的概念——程序员必须直接操作底层数据表示,无法保证数据完整性。

1974-1975:CLU 语言诞生。Liskov 和学生设计并实现了 CLU 语言——这是第一门完整实现抽象数据类型概念的语言,比 C++(1983)早 9 年、比 Java(1995)早 21 年。

CLU 引入了三个革命性概念:

1. 迭代器 (iterator)。让程序员可以遍历任意数据结构(链表、树、图)而不暴露其内部表示。今天 Python/Java/C++/Rust 的 for-each 循环、Java Stream API 都源于这个概念。

2. 异常处理 (exception handling)。让程序可以优雅地处理错误,不必层层检查返回值。CLU 是第一门把异常作为一等公民的语言——今天所有主流语言(Java/Python/C++/Go/Rust)都有异常处理。

3. 类型参数化 (generics)。让程序员可以写「通用算法」而不必为每种数据类型写一遍。CLU 的「cluster」概念是 Java Generic、C++ Template、Python Type Hint 的直接祖先。

CLU 在 1979 年 ACM SIGPLAN 大会上获得「Programming Language Achievement Award」。虽然 CLU 没有成为主流语言,但它的三个核心概念(迭代器、异常、泛型)成为今天所有主流语言的标配。

三、1960 年代:MIT 与「程序设计语言抽象」

1987 年 OOPSLA 论文:1987 年 Liskov 与 Jeannette Wing 在 OOPSLA 会议上发表《A Behavioral Notion of Subtyping》论文,正式提出「Liskov 替换原则」(Liskov Substitution Principle, LSP):

「子类型必须能够在不改变程序正确性的前提下替换父类型。」

LSP 的核心思想是:继承关系不仅是语法关系(is-a),更是行为关系(must behave like)。子类必须遵守父类的所有行为契约——如果父类方法承诺「返回值大于 0」,子类就不能重写为「返回负数」。

SOLID 五原则:LSP 与 1990 年代 Robert C. Martin 提出的其他四个原则(单一职责 SRP、开放封闭 OCP、接口隔离 ISP、依赖倒置 DIP)共同构成面向对象编程的「SOLID 五大原则」——这是每一个 Java/Python/C++ 程序员都必须掌握的核心设计原则。

现代影响:LSP 直接影响了 Java 8 的 default method 设计、TypeScript 的协变/逆变、Go 的 interface 设计、Rust 的 trait 设计。每一个现代编程语言的设计都绕不开 LSP 这个 1987 年提出的原则。

四、问题二:层次化系统该怎么设计——1970 年代:CLU 与「替换原则」的提出

Argus 语言(1982-1988):1982 年 Liskov 启动 Argus 项目,设计第一门原生支持分布式计算的语言。Argus 引入了「guardian」概念——一个 guardian 是一个持久的、故障恢复的计算单元。

关键贡献:Argus 的「原子事务」(atomic transaction) 抽象成为今天分布式系统的基础。Google Spanner、Amazon DynamoDB、CockroachDB 等分布式数据库的事务模型都源于 Argus 的设计。

1988 年 Thor 分布式对象系统。Liskov 与学生把 Argus 的思想工程化为 Thor 分布式对象系统——这是世界上第一个支持「位置透明」远程调用的系统,比 Java RMI(1997)早 9 年。Thor 的设计直接影响了今天的微服务架构(gRPC、Apache Thrift、AWS Lambda)。

五、1980 年代:MIT 实验室主任与一个研究共同体的建设

图灵奖颁奖词(2008):Liskov 获得图灵奖,评奖委员会表彰她「对编程语言、程序设计方法、分布式系统的基础性贡献」。颁奖词特别提到三个里程碑:CLU 语言的抽象数据类型、Argus 语言的分布式事务、Liskov 替换原则的子类型理论。

Liskov 是图灵奖历史上第二位女性得主(第一位是 2006 年 Frances Allen)。2008 年是图灵奖历史性的一年——Liskov 与 2007 年图灵奖得主 Edmund Clarke、Allen Emerson 的研究都基于形式化方法,标志着「软件工程的形式化」成为计算机科学的核心方向。

图灵奖演讲:Liskov 在 2008 年图灵奖演讲中回顾了她的程序语言设计哲学——「简单性、抽象性、可组合性」。她说:「程序语言不是给计算机用的,是给程序员用的。一个好的语言应该让程序员的意图清晰可见。」

六、1990 年代:把分布式系统的问题重新写一遍

Dorylus 系统(2024)。Liskov 86 岁高龄时仍参与设计了 Dorylus 分布式图计算系统——该系统 2024 年在 SIGCOMM 会议上获得最佳论文奖。Dorylus 解决了大规模图计算中的「边服务器」(edge server) 资源浪费问题,比之前系统快 8 倍。

MIT Institute Professor。Liskov 至今仍是 MIT Institute Professor——这是 MIT 教授的最高荣誉,全校只有 12 个。她在 MIT 53 年(1972-2025)的教学与研究影响了整个程序语言和分布式系统领域。

女性程序员榜样。Liskov 是程序语言和分布式系统领域最有影响力的女性科学家。她的成功路径——从数学系学生到 IBM 程序员到 MIT 教授到图灵奖得主——为女性进入计算机科学领域提供了榜样。

七、2008 年图灵奖,以及一份关于「 substitutability」的坚持

1964MIT 第一位计算机科学女博士——为女性进入计算机科学领域开辟道路
1974-1979CLU 语言——抽象数据类型、迭代器、异常处理、类型参数化四大概念的工程化
1982-1988Argus 与 Thor——分布式事务、远程调用的早期实现,影响微服务架构
1987-2008Liskov 替换原则与图灵奖——面向对象编程的 SOLID 原则之首,程序语言设计理论

Liskov 至今仍在 MIT 担任 Institute Professor。她近年研究「多核系统」「分布式存储」等现代主题,2024 年她参与设计的 Dorylus 系统在 SIGCOMM 获得最佳论文奖。86 岁的她仍在用工程方法推动计算机科学边界。Liskov 是程序语言、分布式系统、面向对象设计三大领域的奠基人——而这三个领域正是今天 AI 系统、云计算、微服务架构的数学基础。

💬 评论
🔗 本文链接

以专业为基,引领科技向善向新

Rooted in professionalism, we lead technology toward social good and innovation.

数智化转型网 · 了解更多产业资讯与选型数据 →

📰 你可能也喜欢

比雅恩·斯特劳斯特鲁普(Bjarne Stroustrup):C++ 的设计者,「零开销抽象」的定义者 AI人物图谱

比雅恩·斯特劳斯特鲁普(Bjarne Stroustrup):C++ 的设计者,「零开销抽象」的定义者

Bjarne Stroustrup(比雅恩·斯特劳斯特鲁普,丹麦,1950 年生)在 C++ 语言设计与通用系统编程 领域的位置,很少有人能给出准确坐标。他证明…
📅 11-13 · 👁 2026年11月13日
吉姆·格雷(Jim Gray):事务理论、并行数据库与公开基准测试的推动者 AI人物图谱

吉姆·格雷(Jim Gray):事务理论、并行数据库与公开基准测试的推动者

Jim Gray(吉姆·格雷,美国,1944 年生)在数据库事务、并行数据库与分布式系统领域的位置,很少有人能给出准确坐标。他证明了「数据库能扛住一亿次并发交易…
📅 11-13 · 👁 2026年11月13日
安保正一(Katsuhiro Isobe):从 SX 登顶到用超级计算机模拟地球 AI人物图谱

安保正一(Katsuhiro Isobe):从 SX 登顶到用超级计算机模拟地球

他领导的团队做出了当时世界上算力最强的计算机,又用它做了一件当时看来极不划算的事——用超级计算机去模拟地球的气候,而那套模拟后来真的被用来评估人类排放的长期后果…
📅 11-13 · 👁 2026年11月13日
莱斯利·兰波特(Leslie Lamport):逻辑时钟、Paxos 与「软件工程」这个词的另一半 AI人物图谱

莱斯利·兰波特(Leslie Lamport):逻辑时钟、Paxos 与「软件工程」这个词的另一半

他给分布式系统发明了一套思考方式——用「逻辑时钟」代替物理时钟、用「状态机」代替流程图——今天几乎每一个可靠系统的设计里,都藏着他五十年前写下的定理。
📅 11-13 · 👁 2026年11月13日
赫尔曼·霍利思(Herman Hollerith):打孔卡与数据工业的起点 AI人物图谱

赫尔曼·霍利思(Herman Hollerith):打孔卡与数据工业的起点

1860 年生于 美国 的 Herman Hollerith,其研究路径与 数据处理与信息工业的起点 的主流路径几乎不重合。他把人口普查的难题变成了一张打孔卡与…
📅 10-29 · 👁 2026年10月29日
王安(An Wang):磁性存储核心与迷你计算机,以及那段被误判的岁月 AI人物图谱

王安(An Wang):磁性存储核心与迷你计算机,以及那段被误判的岁月

An Wang(王安,中国/美国,1920 年生)在 磁性记忆核心与计算机产业化 领域的位置,很少有人能给出准确坐标。他在麻省理工学院读研究生时把磁性记忆核心做…
📅 10-29 · 👁 2026年10月29日