# Fran Allen Wins Turing Award

2006 | Frances E. Allen | For pioneering contributions to the theory and practice of optimizing compiler techniques that laid the foundation for modern optimizing compilers and automatic parallel execution. |

2005 | Peter Naur | For fundamental contributions to programming language design and the definition of Algol 60, to compiler design, and to the art and practice of computer programming. |

2004 | Vinton G. Cerf | For pioneering work on internetworking, including the design and implementation of the Internet's basic communications protocols, TCP/IP, and for inspired leadership in networking. |

Robert E. Kahn | For pioneering work on internetworking, including the design and implementation of the Internet's basic communications protocols, TCP/IP, and for inspired leadership in networking. | |

2003 | Alan Kay | For pioneering many of the ideas at the root of contemporary object-oriented programming languages, leading the team that developed Smalltalk, and for fundamental contributions to personal computing. |

2002 | Leonard M. Adleman | For their ingenious contribution for making public-key cryptography useful in practice. |

Ronald L. Rivest | For their ingenious contribution for making public-key cryptography useful in practice. | |

Adi Shamir | For their ingenious contribution for making public-key cryptography useful in practice. | |

2001 | Ole-Johan Dahl | For ideas fundamental to the emergence of object oriented programming, through their design of the programming languages Simula I and Simula 67. |

Kristen Nygaard | For ideas fundamental to the emergence of object oriented programming, through their design of the programming languages Simula I and Simula 67. | |

2000 | Andrew Chi-Chih Yao | In recognition of his fundamental contributions to the theory of computation, including the complexity-based theory of pseudorandom number generation, cryptography, and communication complexity. |

1999 | Frederick P. Brooks | For landmark contributions to computer architecture, operating systems, and software engineering. |

1998 | James Gray | For seminal contributions to database and transaction processing research and technical leadership in system implementation. |

1997 | Douglas Engelbart | For an inspiring vision of the future of interactive computing and the invention of key technologies to help realize this vision. |

1996 | Amir Pnueli | For seminal work introducing temporal logic into computing science and for outstanding contributions to program and system verification. |

1995 | Manuel Blum | In recognition of his contributions to the foundations of computational complexity theory and its application to cryptography and program checking. |

1994 | Edward Feigenbaum | For pioneering the design and construction of large scale artificial intelligence systems, demonstrating the practical importance and potential commercial impact of artificial intelligence technology. |

Raj Reddy | For pioneering the design and construction of large scale artificial intelligence systems, demonstrating the practical importance and potential commercial impact of artificial intelligence technology. | |

1993 | Juris Hartmanis | In recognition of their seminal paper which established the foundations for the field of computational complexity theory. |

Richard E. Stearns | In recognition of their seminal paper which established the foundations for the field of computational complexity theory. | |

1992 | Butler W. Lampson | For contributions to the development of distributed, personal computing environments and the technology for their implementation: workstations, networks, operating systems, programming systems, displays, security and document publishing. |

1991 | Robin Milner | For three distinct and complete achievements: 1) LCF, the mechanization of Scott's Logic of Computable Functions, probably the first theoretically based yet practical tool for machine assisted proof construction; 2) ML, the first language to include polymorphic type inference together with a type-safe exception-handling mechanism; 3) CCS, a general theory of concurrency. In addition, he formulated and strongly advanced full abstraction, the study of the relationship between operational and denotational semantics. |

1990 | Fernando J. Corbato | For his pioneering work organizing the concepts and leading the development of the general-purpose, large-scale, time-sharing and resource-sharing computer systems, CTSS and Multics. |

1989 | William (Velvel) Kahan | For his fundamental contributions to numerical analysis. One of the foremost experts on floating-point computations. Kahan has dedicated himself to "making the world safe for numerical computations." |

1988 | Ivan Sutherland | For his pioneering and visionary contributions to computer graphics, starting with Sketchpad, and continuing after. Sketchpad, though written twenty-five years ago, introduced many techniques still important today. These include a display file for screen refresh, a recursively traversed hierarchical structure for modeling graphical objects, recursive methods for geometric transformations, and an object oriented programming style. Later innovations include a "Lorgnette" for viewing stereo or colored images, and elegant algorithms for registering digitized views, clipping polygons, and representing surfaces with hidden lines. |

1987 | John Cocke | For significant contributions in the design and theory of compilers, the architecture of large systems and the development of reduced instruction set computers (RISC); for discovering and systematizing many fundamental transformations now used in optimizing compilers including reduction of operator strength, elimination of common subexpressions, register allocation, constant propagation, and dead code elimination. |

1986 | John Hopcroft | For fundamental achievements in the design and analysis of algorithms and data structures. |

Robert Tarjan | For fundamental achievements in the design and analysis of algorithms and data structures. | |

1985 | Richard M. Karp | For his continuing contributions to the theory of algorithms including the development of efficient algorithms for network flow and other combinatorial optimization problems, the identification of polynomial-time computability with the intuitive notion of algorithmic efficiency, and, most notably, contributions to the theory of NP-completeness. Karp introduced the now standard methodology for proving problems to be NP-complete which has led to the identification of many theoretical and practical problems as being computationally difficult. |

1984 | Niklaus Wirth | For developing a sequence of innovative computer languages, EULER, ALGOL-W, MODULA and PASCAL. PASCAL has become pedagogically significant and has provided a foundation for future computer language, systems, and architectural research. |

1983 | Dennis M. Ritchie | For their development of generic operating systems theory and specifically for the implementation of the UNIX operating system. |

Ken Thompson | For their development of generic operating systems theory and specifically for the implementation of the UNIX operating system. | |

1982 | Stephen A. Cook | For his advancement of our understanding of the complexity of computation in a significant and profound way. His seminal paper, "The Complexity of Theorem Proving Procedures," presented at the 1971 ACM SIGACT Symposium on the Theory of Computing, Laid the foundations for the theory of NP-Completeness. The ensuing exploration of the boundaries and nature of NP-complete class of problems has been one of the most active and important research activities in computer science for the last decade. |

1981 | Edgar F. Codd | For his fundamental and continuing contributions to the theory and practice of database management systems. He originated the relational approach to database management in a series of research papers published commencing in 1970. His paper "A Relational Model of Data for Large Shared Data Banks" was a seminal paper, in a continuing and carefully developed series of papers. Dr. Codd built upon this space and in doing so has provided the impetus for widespread research into numerous related areas, including database languages, query subsystems, database semantics, locking and recovery, and inferential subsystems. |

1980 | C. Antony R. Hoare | For his fundamental contributions to the definition and design of programming languages. |

1979 | Kenneth E. Iverson | For his pioneering effort in programming languages and mathematical notation resulting in what the computing field now knows as APL, for his contributions to the implementation of interactive systems, to educational uses of APL, and to programming language theory and practice. |

1978 | Robert W. Floyd | For having a clear influence on methodologies for the creation of efficient and reliable software, and for helping to found the following important subfields of computer science: the theory of parsing, the semantics of programming languages, automatic program verification, automatic program synthesis, and analysis of algorithms. |

1977 | John Backus | For profound, influential, and lasting contributions to the design of practical high-level programming systems, notably through his work on FORTRAN, and for seminal publication of formal procedures for the specification of programming languages. |

1976 | Michael O. Rabin | For their joint paper "Finite Automata and Their Decision Problem," which introduced the idea of nondeterministic machines, which has proved to be an enormously valuable concept. Their (Scott & Rabin) classic paper has been a continuous source of inspiration for subsequent work in this field. |

Dana S. Scott | For their joint paper "Finite Automata and Their Decision Problem," which introduced the idea of nondeterministic machines, which has proved to be an enormously valuable concept. Their (Scott & Rabin) classic paper has been a continuous source of inspiration for subsequent work in this field. | |

1975 | Allen Newell | In joint scientific efforts extending over twenty years, initially in collaboration with J. C. Shaw at the RAND Corporation, and subsequentially with numerous faculty and student collegues at Carnegie-Mellon University, they have made basic contributions to artificial intelligence, the psychology of human cognition, and list processing. |

Herbert A. Simon | In joint scientific efforts extending over twenty years, initially in collaboration with J. C. Shaw at the RAND Corporation, and subsequentially with numerous faculty and student collegues at Carnegie-Mellon University, they have made basic contributions to artificial intelligence, the psychology of human cognition, and list processing. | |

1974 | Donald E. Knuth | For his major contributions to the analysis of algorithms and the design of programming languages, and in particular for his contributions to the "art of computer programming" through his well-known books in a continuous series by this title. |

1973 | Charles W. Bachman | For his outstanding contributions to database technology. |

1972 | E. W. Dijkstra | The working vocabulary of programmers everywhere is studded with words originated or forcefully promulgated by E.W. Dijkstra - display, deadly embrace, semaphore, got-to-less programming, structured programming. But his influence on programming is more pervasive than any glossary can possibly indicate. |

1971 | John McCarthy | For his contributions to artificial intelligence. |

1970 | J. H. Wilkinson | For his research in numerical analysis to facilitiate the use of the high-speed digital computer, having received special recognition for his work in computations in linear algebra and "backward" error analysis. |

1969 | Marvin Minsky | For his contributions to artificial intelligence. |

1968 | Richard Hamming | For his work on numerical methods, automatic coding systems, and error-detecting and error-correcting codes. |

1967 | Maurice V Wilkes | Professor Wilkes is best known as the builder and designer of the EDSAC, the first computer with an internally stored program. Built in 1949, the EDSAC used a mercury delay line memory. He is also known as the author, with Wheeler and Gill, of a volume on "Preparation of Programs for Electronic Digital Computers" in 1951, in which program libraries were effectively introduced. |

1966 | A. J. Perlis | For his influence in the area of advanced programming techniques and compiler construction. |