Today, the ACM announced the winner of the Turing award. For those who don’t know, the Turing award is the greatest award in computer science – the CS equivalent of the Nobel prize, or the Fields medal.
The winner: Fran Allen. The first woman ever to win the Turing award. And the first Turing award winner that I’ve personally known. Fran deserves it, and I’m absolutely overjoyed to see her getting the recognition she deserves. Among her many accomplishments, Fran helped design Fortran and create the worlds first optimizing compiler.
One of my fondest memories of work is from 8 years ago. My advisor, Lori Pollock, was up for tenure. Fran was picked as one of the outside reviewers for her tenure case. So in the course of doing the review, she read the papers that Lori and I wrote together – and liked them. The next time she was in my building, she came to my office to introduce herself and talk to me about the papers I’d written. I was absolutely stunned – Fran Allen came looking for me! to talk to me!
Since then, I’ve learned that that’s just the kind of person she is. Fran is a brilliant woman, one of the smartest people I’ve had to opportunity to meet: a person who has done amazing things in her career. And she’s also one of the nicest people you could ever hope to meet. She’s approachable and friendly, and has searched out many junior researchers to give them a bit of encouragement. She’s been a mentor to more people that I could hope to count. She’s just a thoroughly amazing person.
I can’t even begin to say how happy I am for her. She’s earned the greatest award that exists for computer science, and I’m thrilled to see that the ACM recognized that. And knowing Fran, I’m particularly happy that she’s the first woman recipient of the award, because she’s worked so hard in her career to help women overcome the biases of so many people in the mathematical sciences.
Congratulations, Fran!
Congratulations to Fran Allen, to you for being in her spotlight, and to FORTRAN.
I started programming FORTRAN on an IBM 1130 in 1966. My first program calculated e by power series. Within a month I’d reinvented the bubble sort, and memorized 26 female 5-letter first names as variables. By the next month, I had written software that generated random sentences from a generative grammar and a vocabulary, including poems, some published. I waited years for someone to psychoanalyze the author, hoping for a Turing test gotcha!
That was 41 years and 30+ languages ago. So Fran, from afar, shaped my perception of the world. Yay!
Hey Mark,
I think you’ve got a bit of a typo in the post title. 🙂
Anyone got the e-mail for former Harvard president Lawrence Summers, so we can make sure he sees this? 😉
The “Lori Pollock” link seems to lead to a 404.
I always imagine that people who win things like the Nobel or the Fields or the Turing or such are much more like Superman or Batman than real people. It’s interesting to see that they do actually exist, and are real people 🙂
Mark, could you elaborate a little on the optimized compiler? That sounds exciting.
I think you need the www for it work properly: http://www.cis.udel.edu/~pollock/
Lori’s office is just down the hall from mine but I think our only interaction thus far was her visiting my class to advertise her study abroad program.
JP:
Thanks. I’ll go fix the link.
Lori is definitely worth taking the time to get to know. She was a terrific advisor, one hell of a smart lady, and an all-around nice person.
shameless self-promotion: I wrote a bit about the Turing Award lecture by last years winner, Peter Naur, here. I expect that Fran Allen’s lecture will be a little more related to computer science.
While I must admit I don’t really know of Fran Allen’s works, I am overjoyed over the fact that they actually picked a woman this time. Took the fourty years, though I guess that in ACM’s defense, there were few female pioneers in the early days.
Kristjan:
I agree that it’s great to see the Turing award finally go to a woman. I’m particularly happy to see it go to Fran – because she’s both a person who has done amazing things in her career, and because she’s a person who has worked so hard for women’s equality in the workplace. For her to be the first woman to receive the award is just particularly appropriate.
Foxy:
It’s optimizing compiler, not optimized compiler.
If you write programs these days, odds are, it’s getting run through an optimizing compiler. The way that a compiler works is that it takes code written in some programming language, and translates it into the binary code for the machine that it’s going to run on.
If you naively translate programs to machine code, you find a lot of places where the generated code isn’t as fast as it could be. So the original idea of the optimizing compiler was to look at the code that the compiler generated, and see how you could improve it so that it would run faster.
As optimization progressed, it moved beyond just fixing up places where the compiler had generated sub-optimal code. There are a lot of times in programming when writing code that’s as efficient as possible is either extremely difficult for a person, but easy for a machine; or where the most efficiently written code is very hard for a human to understand; so the compiler analyzes the code and performs a wide variety of transformations on it to make it run faster.
For example, if you’re looking at parallel code in fortran for things like weather prediction, you find loops inside loops inside loops. The precise ordering of the loops can have a huge impact on how well the code performs – there are cases where a different loop order can create 2 or 3 orders of magnitude difference in execution time. But it can be extremely hard for a human being to figure out what the idea loop order is. For a computer, it often comes down to solving an integer linear programming problem, which the computer can do quite well. (Integer linear programming is exponential – but if it’s an ILP problem with a half-dozen variables, that’s still something a computer can do quite fast.)
For another example, if you’re programming in a language like Java, you’re constantly calling methods on objects. When you write “x.foo()” in Java code, the compiler generates code to go to Xs class, look up the method named “x”, and then call it. That process of x->class->method can be quite slow. But very often, the compiler can tell exactly what type x will be, and can just hard-code a call to Xs “foo” method, totally eliminating the lookup process. Doing that can have a dramatic effect on code performance.
Fran is one of the people who pioneered the field of optimizing compilers.
Mark, thanks for the description of her work. The Computer Science department of the University of Copenhagen has a strong programming group, which, among other things, focuses heavily on compilers (especially compiler generation). So I am a bit embarrased about not having heard about her.
Like Jonathan, my first experience in programming was with FORTRAN (early 1970s), so Fran Allen had a great effect on my career as well. Compilers and optimization are both key to my work as well as outside interests.
This is a well-deserved award. Being one of a handful of IBM Fellows (and even fewer female Fellows) isn’t too shabby either.
The professor I took compilers and advanced compilers from had several Fran Allen lectures on video. Fran Allen gave superb lectures (through video, that is) .