For practical and theoretical contributions to programming language and system design that continue to shape modern computing
Barbara Liskov is an American computer scientist and MIT Institute Professor who pioneered the modern approach to writing code. She developed key concepts in programming languages, including the notions of data abstraction, polymorphism, and modularity. Liskov discovered these ideas as a young professor and led a team that created CLU, the first programming language that supported an approach she invented: data abstraction helped programmers produce computer programs that are reliable and secure. Almost every important programming language used today is a descendant of CLU.
Liskov (née Barbara Jane Huberman) was born in 1939, in Los Angeles, California. She earned her BA in mathematics at the University of California, Berkeley, in 1961, and took a position as an applications programmer at the Mitre Corporation in Massachusetts, where she discovered that she enjoyed and was good at programming. Liskov worked at Mitre for a year and then spent a year working as a programmer at Harvard as part of an AI project to investigate machine (i.e. computer) translation of languages. In the fall of 1963, she entered the doctoral program in Computer Science at Stanford University, where she worked with AI pioneer and CHM Fellow John McCarthy. Liskov’s thesis, completed in 1968, was on chess endgames, a subject of great interest to McCarthy, who viewed chess as offering special insights into human intelligence.
After earning her PhD, Liskov moved back to the Boston area to work again at the Mitre Corporation, but this time as a researcher. At Mitre, she changed her research area from AI to software systems. Her first project involved the design and implementation of a time-sharing system called Venus. The second project involved finding ways to address the “software crisis.” At the time, people didn’t understand how to produce programs that worked correctly, and expensive software development efforts often failed as a result. This project got Liskov into the field of programming methodology, where researchers were looking for ways to organize and design programs so that they really worked.
In 1971, shortly after presenting a conference paper about the Venus system, Liskov was asked to consider applying for a faculty position at MIT. In the fall of 1972, she left Mitre and joined the MIT faculty as a professor in the Electrical Engineering Department and as a member of Laboratory for Computer Science. There, she continued her work on programming methodology, which led to the invention of abstract data types as a way to produce modular code. At the time, she said that the problem for programmers was that there was nothing to help them organize their code in a sensible way, and she envied the electrical engineers because their notion of circuits connected by wires helped them organize their systems. She created CLU to address this problem.
When the development of CLU was complete, Liskov began doing research in distributed systems, which consist of multiple computers that communicate over a network. Her subsequent work included programming languages for distributed systems, object-oriented database systems, distributed garbage collection, replication protocols that ensure that data stored online (in “the cloud”) is secure even in the presence of hardware failures and malicious attacks, and the definition of Behavioral Subtyping (also known as the “Liskov Substitution Principle”), a fundamental concept underlying object-oriented programming.
Liskov became a full professor at MIT in 1980. In 2008, MIT named her an Institute Professor, the highest honor awarded to an MIT faculty member.