Alfred Vaino Aho (nacido el 9 de agosto de 1941) es un informático canadiense conocido principalmente por su trabajo en lenguajes de programación, compiladores y algoritmos relacionados, así como por sus libros de texto sobre el arte y la ciencia de la programación informática. Él y su colaborador de larga data Jeffrey Ullman son los destinatarios del Premio Turing 2020, reconocido generalmente como la distinción más alta en informática. Aho fue elegido miembro de la Academia Nacional de Ingeniería en 1999 por sus contribuciones a los campos de los algoritmos y las herramientas de programación.
La investigación y las publicaciones de Aho han tenido un impacto duradero en cómo se diseñan, analizan y compilan los lenguajes de programación. Sus libros de texto, particularmente los "libros del dragón" sobre diseño de compiladores, han educado a generaciones de informáticos e ingenieros. Su trabajo abarca desde fundamentos teóricos hasta herramientas prácticas utilizadas en el sistema operativo Unix.
Educación y primeros años
Aho recibió un B.A.Sc. (1963) en Física de Ingeniería de la Universidad de Toronto, luego una maestría (1965) y un doctorado (1967) en Ingeniería Eléctrica/Ciencias de la Computación de la Universidad de Princeton. En su tesis doctoral, Aho creó las gramáticas indexadas y el autómata de pila anidada como vehículos para extender el poder de los lenguajes libres de contexto mientras conservaba muchas de sus propiedades de decidibilidad y clausura. Una aplicación de las gramáticas indexadas es modelar sistemas de reescritura paralela, particularmente en aplicaciones biológicas.
Después de graduarse de Princeton, Aho se unió al Centro de Investigación en Ciencias de la Computación de Bell Labs, donde ideó algoritmos eficientes de coincidencia de expresiones regulares y patrones de cadenas que implementó en las primeras versiones de las herramientas Unix egrep y fgrep. El algoritmo fgrep se ha conocido como el algoritmo de Aho-Corasick; se utiliza en varios sistemas de búsqueda bibliográfica y otras aplicaciones de búsqueda de cadenas.
Contribuciones a compiladores y herramientas
En Bell Labs, Aho trabajó estrechamente con Steve Johnson y Jeffrey Ullman para desarrollar algoritmos eficientes para analizar y traducir lenguajes de programación. Steve Johnson utilizó los algoritmos de análisis LALR ascendente para crear el generador de analizadores sintácticos yacc, y Michael E. Lesk y Eric Schmidt utilizaron los algoritmos de coincidencia de expresiones regulares de Aho para crear el generador de analizadores léxicos lex. Las herramientas lex y yacc y sus derivados se han utilizado para desarrollar los front ends de muchos de los compiladores de lenguajes de programación actuales.
Aho también es ampliamente conocido por su coautoría del lenguaje de programación AWK con Peter J. Weinberger y Brian Kernighan (la "A" significa "Aho"). Este lenguaje de procesamiento de texto se convirtió en una herramienta estándar en entornos Unix e influyó en muchos lenguajes de script posteriores.
Los libros del dragón y algoritmos
Aho y Ullman escribieron una serie de libros de texto sobre técnicas de compilación que codificaron la teoría relevante para el diseño de compiladores. Su libro de texto de 1977, Principles of Compiler Design, tenía un dragón verde en la portada y se conoció como "el libro del dragón verde". En 1986, Aho y Ullman se unieron a Ravi Sethi para crear una nueva edición, "el libro del dragón rojo", y en 2006 también a Monica Lam para crear "el libro del dragón púrpura". Los libros del dragón se utilizan para cursos universitarios y como referencia en la industria.
En 1974, Aho, John Hopcroft y Ullman escribieron The Design and Analysis of Computer Algorithms, codificando parte de su investigación temprana sobre algoritmos. Este libro se convirtió en uno de los más citados en informática durante varias décadas y ayudó a estimular la creación de algoritmos y estructuras de datos como un curso central en el plan de estudios de informática.
Carrera académica y honores
Desde 1995, Aho ha ocupado la Cátedra Lawrence Gussman en Ciencias de la Computación en la Universidad de Columbia. Se desempeñó como presidente del departamento de 1995 a 1997, y nuevamente en la primavera de 2003. A partir de 2010, sus intereses de investigación incluyen lenguajes de programación, compiladores, algoritmos y computación cuántica. Es parte del grupo de investigación de Lenguajes y Compiladores en la Universidad de Columbia.
Aho ha recibido muchos honores prestigiosos, incluida la Medalla John von Neumann del IEEE y la membresía en la Academia Nacional de Ingeniería y la Academia Nacional de Ciencias. Fue elegido miembro de la Academia Estadounidense de Artes y Ciencias en 2003. Tiene doctorados honorarios de la Universidad de Waterloo, la Universidad de Helsinki y la Universidad de Toronto. Es miembro de la Asociación Estadounidense para el Avance de la Ciencia, ACM, Bell Labs e IEEE. Aho, Hopcroft y Ullman fueron co-receptores del Premio C&C 2017 otorgado por NEC Corporation. Él y Ullman fueron nombrados destinatarios del Premio Turing 2020 el 31 de marzo de 2021.
Vida personal y enseñanza
Aho ha enseñado en la Universidad de Columbia en la ciudad de Nueva York desde 1995. Ganó el Premio al Gran Maestro de la Sociedad de Graduados de Columbia en 2003. Aho se ha desempeñado dos veces como presidente del Comité Asesor de la Dirección de Ciencias de la Computación y la Información de la Fundación Nacional de Ciencias. Es expresidente del Grupo de Interés Especial de ACM sobre Algoritmos y Teoría de la Computabilidad. En general, sus obras han sido citadas 81,040 veces y tiene un índice h de 66, al 8 de mayo de 2019.