Barbara Liskov’s career in computer science began at the birth of the field. Instead of pursuing an advanced degree in math after college, she got a job as a computer programmer at Mitre, a not-for-profit organization in the Boston area that conducts federally funded research in systems engineering and information technology. At the time, hardly anyone was trained in computer science. “Some of them had training as engineers, but others might have had a degree in literature,” Liskov says of her colleagues. “They were hiring people they thought might have aptitude.”
From Mitre, Liskov moved on to work on a Harvard University project that sought to automatically translate English sentences into something a computer could understand. Though natural-language processing is a problem that computer scientists are still working on, back then people expected that it would be solved in a few years.
She was learning a lot on the job, but Liskov decided to go back to school so that she could cover more material more quickly. She headed to Stanford University, which would soon institute a PhD program in computer science.
Though she focused her formal studies on artificial intelligence, Liskov discovered that her real interests lay in the fundamentals of computer design–operating systems and programming languages. AI, she felt, presented a set of seemingly intractable problems, and progress was slow. But with systems research, “you could build applications that did something,” she says. “I just wanted to be working in an area where it was a little easier to make progress.”
After Stanford, Liskov returned to Mitre, this time as a researcher. She jumped right into a project that would become the Venus operating system, an experiment in allowing several people to use the same small computer at once. As she read scientific papers on programming methodology, she recalls, “I realized that I had been designing the operating system in a way that was different than what people normally talked about.” She had defined the operating system as simply as possible, breaking out more complex elements into their own programs.
Liskov submitted a paper describing the Venus operating system to the Symposium on Operating Systems Principles, a conference for researchers from academia and industry. Jerry Saltzer, now an MIT professor emeritus of computer science (see Meet the Author, p. M10), saw her presentation and pushed her to apply to teach at MIT. She started at the Institute in 1972, becoming the first woman on the computer science faculty.
At MIT, Liskov threw herself into her ideas about systems. Working with graduate student Steve Zilles ‘63, ‘67, SM ‘70, EE ‘70, she thought a lot about how to organize computer programs so that they were easy to write, modify, and maintain.
Any sophisticated software application is a complex structure of interlocking parts, often modified over time by a large team of engineers. Any change can have unintended effects on other parts of the software, requiring programmers to essentially rewrite the program. Liskov came up with ways to structure programs in discrete chunks, or “multi-operation modules,” so that changes would be less likely to affect code outside certain boundaries.
Because it was hard to illustrate her ideas to programmers, Liskov designed a programming language that put them directly into practice. “I had a very strong idea about what were good programs and what were bad programs,” she says. “I wanted to make it easy for people to write good programs, and while you can’t prevent people from writing bad programs, I didn’t want to make it too easy for them.”