Artificial Intelligence and Machine Learning

Barbara Liskov Keynote Grace Hopper Conference

Valerie Barr
Valerie Barr, Professor of Computer Science, Union College

Barbara Liskov, Institute Professor at MIT, received the 2008 Turing Award for her innovations to designing and building the computer systems and her achievements in programming language design that have made software more reliable and easier to maintain.  Liskov opened her talk by commenting that receiving the Turing Award had given her an opportunity to reflect on her meandering career path and the work that she has done.


Liskov grew up in San Franciso in the 1950s. She was interested in math & science, so she took lots of classes, but she didn’t talk about it much because it wasn’t cool for girls to like math & science.  She then went to UC Berkeley, became a math major, despite being one of very few women in her classes.  After her undergraduate work, Liskov didn’t feel ready for graduate school, so she moved to Boston and was offered a job as a programmer at the MITRE Corp.  She learned FORTRAN, and discovered she really liked programming.  After a year, she moved to Harvard and worked on their language translation project.  This was during the period of great optimism about artificial intelligence.  Liskov maintained a large program written in machine language, which was great training for becoming a computer scientist.  Of course, it also gave her great understanding of bad code, especially since it was self-modifying code.


Liskov eventually decided to go back to school because she wasn’t learning fast enough. She went to Stanford, met John McCarthy, boldly asked him for support, and ended up working with him during her graduate studies.  She was the only woman in her class, followed by Susan Graham who entered a year later. But it was a very supportive environment. Liskov eventually decided to switch out of AI after finishing her thesis because she had become more interested in computer systems.


Initially Liskov could not find a job at an academic institution as hiring was done by the old boys network.  She went back to work at MITRE, this time as a researcher.  Going to MITRE rather than into the academy at that point enabled her to switch technical areas without the added pressure of being a new faculty member who had to think about standing for tenure in a relatively short period of time.


After providing the background information, Liskov talked about her technical work which ultimately led to the Turing Award.  Much of her work was motivated by interest in program methodology and the questions of how programs should be designed and how programs should be structured.  So after receiving the Turing Award, she went back and reread the old literature, discovering anew that there is great material in old papers and that her students were unaware of it.  So she is now pointing people to these papers and encouraging people to read them.


For example, three key papers she cited are:

  • Edsger Dijkstra, Go To Considered Harmful, Communications of the ACM, Vol. 11, No. 3, March 1968, pp. 147-148.
  • Niklaus Wirth, Program Development by Stepwise Refinement, Communications of the ACM, Vol. 14, No. 4, April 1971, pp. 221-227.
  • David Parnas, Information Distribution Aspects of Design Methodology, IFIP Congress, 1971.

So in 1972 Liskov published A Design Methodology for Reliable Software Systems.

In this paper she presented the idea of global state in which each partition owns a part of the global state.  Modules completely encapsulate their portion of the global state.  This paper was award winning and Liskov was invited to apply for a position at MIT.  She began there in the fall of 1972, one of 10 women out of a faculty of 1000.  


Liskov then began to look at how the partition ideas could be applied to building programs – could you make programming methodology into something that regular programmers would use.  So Liskov began to think about partitions as abstract data types.  She looked at material on extensible languages and early material on hierarchical programming structures and inheritance.  Her work on abstract data types was codified during the summer of 1973 for a conference in 1974. She basically proposed abstract data types as clusters with encapsulation, polymorphism, static type checking, and exception handling.


In the fall of 1973, Liskov decide to proceed with language design based on ADT work. With 3 grad students, she designed the CLU language. Her idea was that a programming language would allow her to figure out whether ADTs really work in practice, would allow her to get a precise definition of ADTs, and determine whether ADTs would impact performance.  So CLU has all these mechanisms – cluster; polymorphism; exception handling, iterators.


Finally, Liskov presented the research challenges of interest to her now:

  • new abstraction mechanism?

  • Massively parallel computers – much to be explored and learned in this area

  • internet computation – rich set of problems

  • storage and computation, semantics, reliability, availability, security 

Liskov also discussed the ingredients that have to be in place in order to get an ah hah moment. You have to be working on a problem, but also have to be able to have “off time” so that the brain can work on the back burner. She exhorted the audience not to get too tired because then you aren’t productive.




Join the Discussion (0)

Become a Member or Sign In to Post a Comment

The Latest from CACM

Shape the Future of Computing

ACM encourages its members to take a direct hand in shaping the future of the association. There are more ways than ever to get involved.

Get Involved

Communications of the ACM (CACM) is now a fully Open Access publication.

By opening CACM to the world, we hope to increase engagement among the broader computer science community and encourage non-members to discover the rich resources ACM has to offer.

Learn More