Andrew Richard Koenig ( IPA: [ˈkøːnɪç] ; nacido en junio de 1952) es un ex investigador y programador de AT&T y Bell Labs . [2] Es el autor de C Traps and Pitfalls y coautor (con Barbara Moo ) de Accelerated C ++ y Ruminations on C ++ , y su nombre está asociado con la búsqueda de nombres dependiente de argumentos , también conocida como "búsqueda de Koenig". [3] Se desempeñó como editor de proyectos del comité de estándares ISO / ANSI para C ++, [4] y es autor de más de 150 artículos sobre C ++ .
Andrew Koenig | |
---|---|
Nació | Andrew Richard Koenig Junio de 1952 (edad 69) Nueva York , EE. UU. |
Nacionalidad | americano |
alma mater | Universidad de Columbia (BS, Matemáticas; MS, Ciencias de la Computación, 1977) |
Ocupación | Científico de la computación |
Conocido por | C ++ , programación, escritura, " búsqueda de Koenig ", " anti-patrón " |
Trabajo notable | C Traps and Pitfalls (1988) Reflexiones sobre C ++ (1997) C ++ acelerado (2000) |
Esposos) | Barbara E. Moo |
Padres) | Seymour H. Koenig Harriet Koenig [1] |
Sitio web | www |
Vida temprana y carrera
Koenig nació en la ciudad de Nueva York y es hijo del físico Dr. Seymour H. Koenig, [5] ex director del Laboratorio IBM Watson , y Harriet Koenig, autora y coleccionista de arte indígena nativo americano. [6]
Se graduó de la Bronx High School of Science en 1968 [7] y luego recibió una licenciatura en ciencias y una maestría en ciencias de la Universidad de Columbia en Nueva York. Fue un miembro destacado del Centro de Actividades de Computación de la Universidad de Columbia (CUCCA) a finales de los años sesenta y setenta. Escribió el primer programa de correo electrónico utilizado en la universidad. [8]
En 1977, se unió al personal técnico de Bell Labs en Murray Hill, Nueva Jersey , de donde se retiró más tarde.
El primer libro de su autoría, en 1987, C trampas y las trampas , había sido motivado por su papel antes y el trabajo, sobre todo como un miembro del personal de la Universidad de Columbia, en un lenguaje de programación diferente, PL / I . En 1977, como miembro del personal contratado recientemente en Bell Labs, presentó un documento titulado "PL / I Traps and Pitfalls" en una reunión de SHARE en Washington, DC [9]
Patentes
- Sistema de autenticación de usuario que emplea funciones de cifrado, # 4,590,470. "Combina la autenticación de desafío-respuesta aleatoria de clave pública con la ocultación del algoritmo de autenticación en un dispositivo que solo pone a disposición las entradas y salidas del algoritmo. Eso protege la sesión contra escuchas y reproducciones y no requiere información secreta en el host".
- Almacenamiento de árboles en forma navegable, # 5,530,957. "Una técnica para almacenar árboles (como representaciones de programas fuente en un entorno de programación) que elimina por completo la sobrecarga de espacio normalmente asociada con el almacenamiento de punteros, al tiempo que permite operaciones de navegación comunes con una eficiencia de tiempo razonable".
- Método y aparato para analizar el código fuente usando el análisis de prefijos, # 5,812,853, "Una técnica para acelerar el procesamiento preliminar, como el preprocesamiento de macros, en un compilador al recordar cadenas de prefijo útiles del programa de entrada en una estructura de datos en forma de árbol y teclearlas cadenas a los estados recordados del compilador ".
- Método y aparato para localizar a usuarios alternativos, # 6.057.782, "La idea de permitir que los sistemas de localización que soportan reconocimientos reordenen su lista de destinos para páginas futuras en base al reconocimiento o falta del mismo en páginas anteriores".
Bibliografía seleccionada
Libros
- Koenig, Andrew, C Trampas y trampas , Reading, Mass .: Addison-Wesley, 1988, c1989. ISBN 0-201-17928-8
- Koenig, Andrew; Moo, Barbara, Reflexiones sobre C ++ , Addison-Wesley, 1997. ISBN 0-201-42339-1
- Koenig, Andrew; Moo, Barbara, C ++ acelerado , Addison-Wesley, 2000. ISBN 0-201-70353-X
Documentos
1999
- Andrew Koenig, Barbara Moo: Enseñanza de C ++ estándar, Parte 2. Revista de programación orientada a objetos (JOOP) 11 (8): 64-67 (1999)
- Andrew Koenig, Barbara Moo: Enseñanza del estándar C ++, Parte 3. JOOP 11 (9): 59-63 (1999)
1998
- Una revolución silenciosa. JOOP 10 (8): 10-13, 16 (1998)
- Informe de Morristown. JOOP 10 (9): 5 a 8 (1998)
- Una revolución de la programación en lenguajes basados en la lógica de objetos. JOOP 11 (1): 13-16 (1998)
- ¿Es buena la abstracción? JOOP 11 (2): 66-69 (1998)
- Simulación de tipos dinámicos en C ++, parte 1. JOOP 11 (3): 76–78, 80 (1998)
- Simulación de tipos dinámicos en C ++, Parte 2. JOOP 11 (4): 63-67 (1998)
- ¿Por qué los vectores son eficientes? JOOP 11 (5): 71-75 (1998)
- Un aperitivo estándar de C ++. JOOP 11 (6): 85-87 (1998)
- Andrew Koenig, Barbara Moo: Enseñanza de C ++ estándar. JOOP 11 (7): 11-17 (1998)
1997
- C ++ en el aula: una mirada hacia el futuro. JOOP 10 (1): 59-61 (1997)
- Darle la vuelta a una interfaz. JOOP 10 (2): 56-58 (1997)
- ¿Qué recipiente debemos enseñar primero? JOOP 10 (3): 10-12 (1997)
- Una ++ década de C ++. JOOP 10 (4): 20–23, 34 (1997)
- Herencia y abreviaturas. JOOP 10 (5): 6–9, 21 (1997)
- Informe de Londres. JOOP 10 (6): 11-16 (1997)
- Cálculo del tipo de tiempo de compilación. JOOP 10 (7): 11-14 (1997)
- La importancia - y los peligros - de la medición del desempeño. JOOP 9 (8): 58-60 (1997)
- Iteradores Iteradores y Secuencias Temporales. JOOP 9 (9): 66–67, 71 (1997)
1996
- Diseño idiomático - charla invitada para ACM OOPSLA '95; publicado en Actas posteriores a la conferencia y reimpreso en forma abreviada en CACM Vol. 39, No. 11, noviembre de 1996.
- Adaptadores de función. JOOP 8 (8): 51-53 (1996)
- Compatibilidad vs. Progreso. JOOP 8 (9): 48-50 (1996)
- Iteradores de entrada genéricos. JOOP 9 (1): 72-75 (1996)
- Asignación de memoria y compatibilidad con C. JOOP 9 (2): 42–43, 54 (1996)
- C ++ como primer idioma. JOOP 9 (3): 47-49 (1996)
- Diseño, comportamiento y expectativa. JOOP 9 (4): 79-81 (1996)
- Interfaz e iniciativa. JOOP 9 (5): 64-67 (1996)
- Iteradores de secuencia aritmética. JOOP 9 (6): 38–39, 92 (1996)
- Colección en C ++: No Panacea, pero útil. JOOP 9 (7): 55-57 (1996)
1995
- Introducción a los adaptadores de iteradores. JOOP 7 (8): 66-68 (1995)
- Reflexiones polimórficas. JOOP 7 (9): 65–67, 80 (1995)
- Patrones y antipatrones. JOOP 8 (1): 46-48 (1995)
- ¿La programación es como la fotografía? JOOP 8 (2): 73-75 (1995)
- Terminando el Estándar. JOOP 8 (3): 60-62 (1995)
- Un ejemplo de diseño sensible al lenguaje. JOOP 8 (4): 56–58, 61 (1995)
- Objetos de función, plantillas y herencia. JOOP 8 (5): 65–68, 84 (1995)
- Variaciones sobre un tema de mango. JOOP 8 (6): 77-80 (1995)
- Otra variación de la manija. JOOP 8 (7): 61-63 (1995)
- Diseño idiomático. Mensajero OOPS 6 (4): 14-19 (1995)
- Andrew Koenig, Bjarne Stroustrup: Fundamentos del software de estilos nativos C ++, Pract. Exper. 25 (S4): S4 / 45-S4 / 86 (1995)
1994
- Una anécdota sobre la inferencia de tipo ML, Simposio de idiomas de muy alto nivel de USENIX, octubre de 1994, Santa Fe
- Cuándo escribir programas con errores. JOOP 7 (1): 80-82 (1994)
- Bibliotecas de uso diario. JOOP 7 (2): 68–72, 80 (1994)
- Plantillas y algoritmos genéricos. JOOP 7 (3): 45-47 (1994)
- Clases sustitutas en C ++. JOOP 7 (4): 71–72, 80 (1994)
- Iteradores genéricos. JOOP 7 (5): 69-72 (1994)
- Reflexiones sobre la abstracción. JOOP 7 (6): 68-70 (1994)
1992
- Árboles con uso eficiente del espacio en C ++. Conferencia de C ++ 1992: 117-130
1991
- Andrew Koenig, Thomas A. Cargill, Keith E. Gorlen, Robert B. Murray, Michael Vilot: ¿Cuán útil es la herencia múltiple en C ++? Conferencia de C ++ 1991: 81-84
1990
- Andrew Koenig, Bjarne Stroustrup: Manejo de excepciones para C ++. Conferencia de C ++ 1990: 149-176
1988
- Matrices asociativas en C ++, Conferencia de Usenix de verano de 1988 (págs. 173–186), San Francisco
1986
- El lenguaje de programación Snocone , Informe técnico de Ciencias de la Computación de Bell Labs # 124, 19 de agosto de 1986
1984
- Distribución automática de software, [10] Conferencia de Usenix de verano de 1984 (págs. 87-106), Portland, Oregón
1977
- "PL / I Traps and Pitfalls", presentado en la conferencia SHARE , 1977.
Referencias
- ^ "Seymour Koenig, Ph.D.16 de julio de 1927-19 de febrero de 2018" , Sociedad Internacional de Resonancia Magnética en Medicina, 2018.
- ^ Nair, RB (2013) 'ANDREW R KOENIG | Kuttipedia de LBS '. https://lbsitbytes2010.wordpress.com/2013/04/07/andrew-r-koenig/
- ^ Sutter, Herb (marzo de 1998). "¿Qué hay en una clase? - El principio de interfaz" . Informe C ++ . Consultado el 21 de febrero de 2010 .
- ^ Sutter, Herb (22 de octubre de 2000). "Acta de la reunión ISO WG21, 22 de octubre de 2000" (PDF) . Grupo de trabajo ISO 21 . Consultado el 21 de febrero de 2010 .
- ^ "Seymour H. Koenig" , Historia de la informática de la Universidad de Columbia
- ^ Koenig, Harriet; Koenig, Seymour H., tejido navajo, formas navajo , Katonah, NY: Katonah Gallery, 1986. ISBN 0-915171-03-1
- ^ "Alumnos notables" , sitio web de Bronx High School of Science
- ^ da Cruz, Frank (6 de febrero de 2010). "Historia de la Computación de la Universidad de Columbia" . Tecnología de la información de la Universidad de Columbia. Archivado desde el original el 11 de marzo de 2010 . Consultado el 21 de febrero de 2010 .
- ^ Cf. Koenig, prefacio de "C Traps and Pitfalls" .
- ^ McIlroy, MD (1987). Un lector de investigación Unix: extractos comentados del Manual del programador, 1971–1986 (PDF) (Informe técnico). CSTR. Bell Labs. 139.
enlaces externos
- Andrew Koenig en AcceleratedCpp.com
- Algunos artículos de Andrew Koenig - Dr. Dobb's Journal