Malcolm Douglas McIlroy (nacido en 1932) es matemático , ingeniero y programador . A partir de 2019, es profesor adjunto de informática en Dartmouth College . McIlroy es mejor conocido por haber propuesto originalmente pipelines Unix y desarrollado varias herramientas Unix , como spell , diff , sort , join , graph , speak y tr . [1] También fue uno de los investigadores pioneros de macroprocesadores.y extensibilidad del lenguaje de programación. Participó en el diseño de múltiples lenguajes de programación influyentes, particularmente PL / I , SNOBOL , ALTRAN , TMG y C ++ .
Malcolm Douglas McIlroy | |
---|---|
Nació | 1932 (88 a 89 años) |
alma mater | Universidad de Cornell (BS, 1954) Instituto de Tecnología de Massachusetts (Ph.D., 1959) |
Conocido por | Macros , canalizaciones Unix , filosofía Unix , componentes de software , echo , diff , sort , join , RUNOFF , tr , manual Unix |
Carrera científica | |
Campos | Ciencias de la computación , matemáticas , ingeniería |
Tesis | Sobre la solución de las ecuaciones diferenciales de conchas cónicas (1959) |
Consejeros de doctorado | Eric Reissner |
Sitio web | www |
Su trabajo seminal sobre componentización de software [2] y la reutilización de código [3] [4] le hace un pionero de la ingeniería de software basado en componentes y la ingeniería de la línea de productos de software .
Biografía
McIlroy obtuvo su licenciatura en ingeniería física de la Universidad de Cornell , [5] y un doctorado. en Matemáticas Aplicadas del MIT en 1959 por su tesis Sobre la Solución de Ecuaciones Diferenciales de Conchas Cónicas (asesor Eric Reissner ). [6] Enseñó en el MIT de 1954 a 1958. [5]
McIlroy se incorporó a Bell Laboratories en 1958; de 1965 a 1986 fue jefe de su Departamento de Investigación de Técnicas de Computación (el lugar de nacimiento del sistema operativo Unix) y, a partir de entonces, fue Miembro Distinguido del Personal Técnico. [5]
De 1967 a 1968, McIlroy también se desempeñó como profesor invitado en la Universidad de Oxford . [5]
En 1997, McIlroy se retiró de Bell Labs y ocupó un puesto como profesor adjunto en el Departamento de Ciencias de la Computación de Dartmouth College . [5]
Anteriormente, trabajó en la Association for Computing Machinery como conferencista nacional, presidente del Premio Turing , miembro del comité de planificación de publicaciones y editor asociado de Communications of the ACM , Journal of the ACM y ACM Transactions on Programming Languages and Systems . También sirvió en el comité ejecutivo de CSNET . [5]
Investigaciones y contribuciones
Procesadores de macros
Se considera que McIlroy es un pionero de los macroprocesadores . [7] [8] [9] En 1959, junto con Douglas E. Eastwood de Bell Labs, introdujo macros condicionales y recursivas en el popular ensamblador SAP , [10] creando lo que se conoce como Macro SAP. [11] Su artículo de 1960 también fue fundamental en el área de la extensión de cualquier lenguaje de programación (incluido el de alto nivel ) a través de macroprocesadores. [7] [10] Estas contribuciones iniciaron la tradición del macrolenguaje en Bell Labs ("todo, desde L6 y AMBIT hasta C"). [12] Las ideas de macroprocesamiento de McIlroy también fueron la principal inspiración para el macroprocesador TRAC . [13]
También fue coautor del macroprocesador M6 en FORTRAN IV , [14] que se usó en ALTRAN [15] y más tarde fue adaptado e incluido en las primeras versiones de Unix . [dieciséis]
Contribuciones a Unix
A lo largo de las décadas de 1960 y 1970, McIlroy contribuyó con programas para Multics (como RUNOFF [17] ) y sistemas operativos Unix (como diff , echo , tr , join y look [16] ), cuyas versiones están muy extendidas hasta el día de hoy mediante la adopción de el estándar POSIX y los sistemas operativos similares a Unix. Introdujo la idea de canalizaciones Unix. [17] También implementado TMG compilador de computador en el PDP-7 y PDP-11 de montaje, que se convirtió en el primer lenguaje de programación de alto nivel que se ejecuta en Unix, lo que provocó el desarrollo e influir Ken Thompson 's lenguaje de programación B [17] y Stephen Johnson Generador de analizador sintáctico Yacc . [18]
McIlroy también tomó el relevo de la compilación de Dennis Ritchie del manual de Unix "como un trabajo de amor". En particular, editó el volumen 1 de las páginas del manual para la versión 7 de Unix. [19] Según Sandy Fraser : "El hecho de que hubiera un manual, que él [McIlroy] insistiera en un estándar alto para el manual, significaba que insistía en un estándar alto para cada uno de los programas que estaba documentado". [20]
Diseño de lenguaje informático
McIlroy influyó en el diseño y la implementación del lenguaje de programación SNOBOL . Sus macros de manipulación de cadenas se utilizaron ampliamente en la implementación inicial de SNOBOL de 1962 y ocuparon un lugar destacado en el trabajo posterior, lo que finalmente condujo a su lenguaje de implementación independiente de la máquina SIL. El tipo de tabla ( matriz asociativa ) se agregó a SNOBOL4 por insistencia de McIlroy en 1969. [21]
En la década de 1960 participó en el diseño del lenguaje de programación PL / I. [4] [22] Fue miembro del comité IBM - SHARE que diseñó el lenguaje [23] y, junto con Robert Morris , escribió el compilador Early PL / I (EPL) en TMG para el proyecto Multics . [24] [25]
Alrededor de 1965, McIlroy, junto con W. Stanley Brown, implementó la versión original del lenguaje de programación ALTRAN para computadoras IBM 7094 . [15] [10]
McIlroy también ha tenido una influencia significativa en el diseño del lenguaje de programación C ++ (por ejemplo, propuso el operador de salida de flujo <<
). [26]
Algoritmos
En la década de 1990, McIlroy trabajó para mejorar las técnicas de clasificación, en particular, fue coautor de un qsort optimizado con Jon Bentley . [27]
En 1969, contribuyó con un algoritmo eficiente para generar todos los árboles de expansión en un gráfico (descubierto por primera vez por George J. Minty en 1965). [10] [28]
premios y reconocimientos
En 1995, fue elegido miembro de la Asociación Estadounidense para el Avance de la Ciencia . [29] En 2004, ganó el premio USENIX Lifetime Achievement Award ("The Flame") [30] y su premio Software Tools User Group (STUG). [1] En 2006, fue elegido miembro de la Academia Nacional de Ingeniería . [31]
Vistas sobre informática
A McIlroy se le atribuye la cita "El verdadero héroe de la programación es el que escribe código negativo", [32] donde el significado del código negativo es similar al del famoso desarrollador de Apple , Bill Atkinson , anécdota del equipo [33] (p. Ej. , cuando un cambio en la fuente de un programa hace que el número de líneas de código disminuya ( código 'negativo'), mientras mejora su calidad general, legibilidad o velocidad).
Ver también
- Darwin (juego de programación)
- Homoiconicidad
- Filosofía Unix
Referencias
- ^ a b "Premio STUG" . USENIX . Consultado el 5 de febrero de 2020 .
- ^ Bown, Rodney L., ed. (2 a 5 de junio de 1986). "Primera Conferencia Internacional sobre Aplicaciones del Lenguaje de Programación Ada (R) para la Estación Espacial de la NASA, volumen 2 - NASA-TM-101202" (PDF) .
- ^ McIlroy, Malcolm Douglas (enero de 1969). "Componentes de software de producción masiva" (PDF) . Ingeniería de software: Informe de una conferencia patrocinada por el Comité Científico de la OTAN, Garmisch, Alemania, 7-11 de octubre de 1968 . División de Asuntos Científicos, OTAN. pag. 79.
- ^ a b Endres, Albert; Rombach, H. Dieter (2003). Un manual de ingeniería de software y sistemas: observaciones empíricas, leyes y teorías . Educación Pearson. pag. 327.
- ^ a b c d e f "Douglas McIlroy" . HOPL: Enciclopedia histórica en línea de lenguajes de programación .
- ^ "M. Douglas (Malcolm) McIlroy" . Proyecto de genealogía matemática . Consultado el 7 de febrero de 2020 .
- ^ a b Layzell, P. (1985). "La historia de los macroprocesadores en la extensibilidad del lenguaje de programación" . The Computer Journal . 28 (1): 29–33. doi : 10.1093 / comjnl / 28.1.29 .
- ^ David Walden (2014). "Macro memorias, 1964-2013" (PDF) . Remolcador . 35 (1).
- ^ Krishnamurthi, Shriram; Felleisen, Matthias; Duba, Bruce F. (2000). Czarnecki, Krzysztof; Eisenecker, Ulrich W. (eds.). "De las macros a la programación generativa reutilizable" (PDF) . Ingeniería de software generativa y basada en componentes . Apuntes de conferencias en informática. Berlín, Heidelberg: Springer. 1799 : 105-120. doi : 10.1007 / 3-540-40048-6_9 . ISBN 978-3-540-40048-6. Archivado desde el original (PDF) el 25 de noviembre de 2004.
- ^ a b c d Holbrook, Bernard D .; Brown, W. Stanley. "Informe técnico de ciencias de la computación n. ° 99: una historia de la investigación en computación en los laboratorios Bell (1937-1975)" . Bell Labs . Archivado desde el original el 2 de septiembre de 2014 . Consultado el 2 de febrero de 2020 .
- ^ "Macro SAP - Modificación del compilador de macros de SAP" . HOPL: Enciclopedia histórica en línea de lenguajes de programación . Archivado desde el original el 13 de agosto de 2008.
- ^ "Bell SAP - SAP con macros condicionales y recursivas" . HOPL: Enciclopedia histórica en línea de lenguajes de programación . Archivado desde el original el 21 de agosto de 2007.
- ^ Mooers, CN ; Deutsch, LP (1965). "TRAC, un lenguaje de manejo de texto". Proceeding ACM '65 Proceedings of the 1965 20th national conference . págs. 229–246. doi : 10.1145 / 800197.806048 . S2CID 40013081 .
- ^ Cole, AJ (1981). Procesadores de macros (segunda edición revisada). Archivo CUP. pag. 254.
- ^ a b Hall, AD, "El sistema ALTRAN para la manipulación de funciones racionales: una encuesta". Communications of the ACM , 14 (8): 517–521 (agosto de 1971).
- ^ a b McIlroy, MD (1987). Un lector de investigación Unix: extractos comentados del Manual del programador, 1971–1986 (PDF) (Informe técnico). La ciencia de Computación. Laboratorios AT&T Bell. 139.
- ^ a b c Ritchie, Dennis M. (1984). "La evolución del sistema de tiempo compartido Unix" . Revista técnica de AT&T Bell Laboratories . 63 (6 Parte 2): 1577–93. doi : 10.1002 / j.1538-7305.1984.tb00054.x . Archivado desde el original el 6 de mayo de 2010.Como PDF
- ^ Johnson, Stephen C. (1975). Yacc: Yet Another Compiler-Compiler (Informe técnico). Murray Hill, Nueva Jersey: AT&T Bell Laboratories. 32 . Consultado el 31 de enero de 2020 .
- ^ Dzonsons, Kristaps; Schwarze, Ingo. "Historia de las páginas de manual de UNIX" . Manuales prácticos de UNIX .
- ^ "La creación del sistema operativo UNIX" . Bell Labs. Archivado desde el original el 14 de septiembre de 2004.
- ^ Griswold, Ralph (1978). "Una historia de los lenguajes de programación SNOBOL". Avisos ACM SIGPLAN . ACM. 13 (8): 275-308. doi : 10.1145 / 960118.808393 . ISSN 0362-1340 . S2CID 5413577 .
- ^ Lawson, Harold ; Bromberg, Howard (12 de junio de 1997). "Los primeros compiladores COBOL del mundo" . Archivado desde el original el 4 de junio de 2004.
- ^ Michael S. Mahoney (18 de agosto de 1989). "Entrevista con MD McIlroy" . Princeton.edu . Murray Hill.
- ^ RA Frieburghouse. "El compilador Multics PL / 1" . Multicians.org .
- ^ Tom Van Vleck (ed.). "La elección de PL / I" . Multicians.org .
- ^ Stroustrup, Bjarne . "Una historia de C ++: 1979-1991" (PDF) .
- ^ Jon L. Bentley; M. Douglas McIlroy (noviembre de 1993). "Ingeniería de una función de clasificación". Software: práctica y experiencia . 23 (11).
- ^ Narsingh Deo (1974). Teoría de grafos con aplicaciones a la ingeniería y la informática . Prentice Hall. pag. 480.
- ^ "Becarios electos: Listado de becarios que son miembros actuales" . aaas.org . Asociación Estadounidense para el Avance de la Ciencia.
- ^ "Premio Flame" . USENIX . Consultado el 5 de febrero de 2020 .
- ^ "Dr. M. Douglas McIlroy" . nae.edu . Academia Nacional de Ingeniería . Consultado el 5 de febrero de 2020 .
- ^ Estas citas se escucharon durante una charla que dio al DLSLUG 12/3/09
- ^ "Código fuente de MacPaint y QuickDraw" . Museo de Historia de la Computación .
enlaces externos
- Página de inicio de Doug McIlroy ( página de inicio de archivo en el sitio web de Bell Labs)
- Biografía
- Doug McIlroy en datos
- Historia de McIlroy del discurso de Unix (audio), incluye muchas notas autobiográficas, junto con una discusión de muchos de los principales autores de Unix.
- Ancestry of Linux - How the Fun Began , presentación noviembre de 2005: (presentación) (audio) (video)
- Código fuente original del hechizo Unix, escrito por Doug McIlroy
- Publicaciones del MD McIlroy - https://www.cs.dartmouth.edu