Tim Teitelbaum


(Ray) Tim Teitelbaum (nacido el 12 de abril de 1943, Estados Unidos) es un informático estadounidense conocido por sus primeros trabajos en entornos de desarrollo integrado (IDE) , edición dirigida por sintaxis y computación incremental . Como educador y miembro de la facultad del Departamento de Ciencias de la Computación de la Universidad de Cornell desde 1973, fue reconocido por su enseñanza a gran escala de programación introductoria y por su tutoría de estudiantes graduados de gran éxito. Como hombre de negocios, es conocido por haber cofundado GrammaTech , Inc. y por haber sido su único director ejecutivo desde 1988 hasta el 2019.

En 1978, Teitelbaum creó el Sintetizador de programas de Cornell, uno de los sistemas seminales que demostró el poder de integrar estrechamente una colección de herramientas de desarrollo de programas , todas con profundos conocimientos sobre un lenguaje de programación y su semántica , en un marco unificado. Sus más de 45 conferencias y demostraciones de este primer IDE durante 1979-82, así como el credo de su artículo de 1981 [6] en coautoría con Thomas Reps , afirman:

Los programas no son texto; son composiciones jerárquicas de estructuras computacionales y deben editarse, ejecutarse y depurarse en un entorno que reconozca y refuerce este punto de vista de manera constante.

Motivado por la importancia de la retroalimentación inmediata en sistemas interactivos como los IDE, la investigación de Teitelbaum en las décadas de 1980 y 1990 se centró en el problema de la computación incremental:

Dado un programa P escrito en lenguaje L, y el resultado de ejecutar P en la entrada x, ¿cómo se puede determinar de manera eficiente el resultado de ejecutar P en la entrada x', donde la diferencia entre x y x' es un pequeño incremento x'-x? .

En un cuerpo de trabajo con sus estudiantes de posgrado, Teitelbaum investigó este problema para una variedad de lenguajes L que incluían gramáticas de atributos , SQL , lenguajes funcionales de primer orden y el cálculo lambda . Además de los métodos de evaluación incremental , el trabajo también incluyó métodos de transformación de programas , es decir, la derivación automática de P de un programa incremental P', donde se ejecuta P' sobre el resultado anterior P(x), el incremento x'-x y la información auxiliar retenido de ejecuciones anteriores, realiza eficientemente el mismo cálculo que ejecutar P en la entrada x'.