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 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. It also gave her great understanding of bad code, especially since it was self-modifying code.
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.
In the fall of 1973, Liskov decided 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:
- 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.
It was one awesome speech which inspired every individual who was there listening to her!!