Alfred Aho | |
---|---|
Born |
Timmins, Ontario |
August 9, 1941
Residence | United States |
Nationality | Canadian American |
Fields | Computer Science |
Institutions | Columbia University |
Alma mater | |
Thesis | Indexed Grammars: An Extension of Context Free Grammars (1968) |
Doctoral advisor | John Hopcroft |
Doctoral students |
|
Known for | |
Notable awards |
|
Website www1 |
Alfred Vaino Aho (born August 9, 1941) is a Canadian computer scientist best known for his work on programming languages, compilers, and related algorithms, and his textbooks on the art and science of computer programming.
Aho received a B.A.Sc. in Engineering Physics from the University of Toronto and a Ph.D. in Electrical Engineering/Computer Science from Princeton University. He conducted research at Bell Labs from 1967 to 1991, and again from 1997 to 2002 as Vice President of the Computing Sciences Research Center. As of 2011[update] he holds the Lawrence Gussman Chair of Computer Science at Columbia University. He served as chair of the department from 1995 to 1997, and again in the spring of 2003.
In his PhD thesis Aho created indexed grammars and the nested-stack automaton as vehicles for extending the power of context-free languages, but retaining many of their decidability and closure properties. Indexed grammars have been used to model parallel rewriting systems, particularly in biological applications.
After graduating from Princeton, Aho joined the Computing Sciences Research Center at Bell Labs where he devised efficient regular expression and string-pattern matching algorithms that he implemented in the first versions of the Unix tools egrep
and fgrep
. The fgrep
algorithm has become known as the Aho-Corasick algorithm; it is used by several bibliographic search-systems, including the one developed by Margaret J. Corasick, and by other string-searching applications.
At Bell Labs, Aho worked closely with Steve Johnson and Jeffrey Ullman to develop efficient algorithms for analyzing and translating programming languages. Steve Johnson used the bottom-up LALR parsing algorithms to create the syntax-analyzer generator yacc, and Michael E. Lesk and Eric Schmidt used Aho's regular-expression pattern-matching algorithms to create the lexical-analyzer generator lex. The lex and yacc tools and their derivatives have been used to develop the front ends of many of today's programming language compilers.