Por Brinch Hansen (13 noviembre 1938 hasta 31 julio 2007) fue un danesa - americana científico informático conocido por su trabajo en los sistemas operativos , programación concurrente y paralelo y computación distribuida .
Per Brinch Hansen | |
---|---|
Nació | |
Fallecido | 31 de julio de 2007 | (68 años)
alma mater | Universidad técnica de Dinamarca |
Conocido por | |
Premios |
|
Carrera científica | |
Campos | Ciencias de la Computación |
Instituciones | |
Influencias | |
Sitio web | brinch-hansen |
Biografía
Temprana edad y educación
Per Brinch Hansen nació en Frederiksberg , un enclave rodeado por Copenhague , Dinamarca . Su padre, Jørgen Brinch Hansen , trabajó como ingeniero civil, se convirtió en un destacado experto en mecánica de suelos y luego aceptó una cátedra en la Universidad Técnica de Dinamarca . Su madre, Elsebeth Brinch Hansen (de soltera Ring), era hija del compositor danés Oluf Ring y trabajó como peluquera antes de casarse. [1]
Brinch Hansen asistió al St. Jørgens Gymnasium y luego estudió ingeniería eléctrica en la Universidad Técnica de Dinamarca, donde buscó un área que "todavía estaba en su fase pionera" con la creencia de que "si se estaba enseñando una materia, probablemente ya estaba demasiado tarde para hacer contribuciones fundamentales ". [1] [2] Después de una pasantía estudiantil de siete semanas en el Laboratorio Hursley de IBM en Inglaterra, decidió dedicar su carrera a las computadoras. Inicialmente enfocado en la construcción de computadoras, la lectura de un libro sobre el Proyecto Stretch de IBM que describía la organización de computadoras desde el punto de vista de un programador [3] volvió a enfocar su interés en convertirse en arquitecto de computadoras. [1]
Regnecentralen
Después de completar una maestría en ingeniería electrónica en 1963, Brinch Hansen consiguió un trabajo en Regnecentralen , entonces una institución de investigación de la Academia Danesa de Ciencias Técnicas , trabajando en el grupo de compiladores, dirigido por Peter Naur y Jørn Jensen . [2] Allí, su primer proyecto significativo fue escribir un analizador para un compilador COBOL para la computadora Siemens 3003.
Posteriormente, escribió un sistema de archivos para ser utilizado durante la ejecución de los programas COBOL compilados, observando posteriormente: [1]
Ahora entiendo que era realmente un pequeño sistema operativo, lo había programado. Sin embargo, a mediados de la década de 1960, la línea divisoria entre la implementación del lenguaje y los sistemas operativos aún no se entendía claramente.
En 1966, Brinch Hansen se trasladó al grupo de hardware de Henning Isaksson en Regnecentralen, para entonces una empresa con accionistas. Junto con Peter Kraft, definió la arquitectura y el conjunto de instrucciones para la tercera computadora de Regnecentralen, la RC 4000, utilizando Algol 60 como lenguaje de definición de hardware para producir una especificación formal.
Sin experiencia en multiprogramación , usó una copia de Cooperating Sequential Processes [4] que Edsger Dijkstra le había enviado para comprender la sincronización de procesos usando semáforos , y luego implementó un monitor RC 4000 especializado en tiempo real para su uso en la gestión de una planta de fertilizantes. Peter Kraft y Charles Simonyi , que todavía era un adolescente, escribieron un intérprete de código p y programas de tareas de registro de datos que se compilaron en código p. [1]
En el verano de 1967, Brinch Hansen dejó el grupo de hardware de Regnecentralen para convertirse en director del desarrollo de software RC 4000 , donde dirigió un equipo que incluía a Jørn Jensen, Peter Kraft y Søren Lauesen en la definición de un sistema de multiprogramación RC 4000 de uso general , con el objetivo de evitar el desarrollo de un sistema operativo de control en tiempo real personalizado para cada instalación de RC 4000, y también admitir el procesamiento por lotes y el tiempo compartido . [1] El sistema resultante no era un sistema operativo completo, sino un pequeño núcleo que proporcionaba los mecanismos sobre los cuales se podían construir sistemas operativos para diferentes propósitos. [5] En la primavera de 1969, se estaba ejecutando una versión confiable y bien documentada del sistema de multiprogramación RC 4000. [1]
Universidad de Carnegie mellon
A finales de 1970, Brinch Hansen se mudó a Pittsburgh , aceptando una invitación de Alan Perlis para visitar el Departamento de Ciencias de la Computación de la Universidad Carnegie Mellon como investigador asociado, mientras escribía el primer libro de texto sistemático sobre principios de sistemas operativos. [1] [2] Durante este tiempo, en la Escuela de Verano de 1971 en Marktoberdorf y en un simposio en Belfast , Brinch Hansen, Tony Hoare y Dijkstra comenzaron a discutir ideas que evolucionaron hacia el concepto de monitor . En la primavera de 1972, después de leer sobre el concepto de clase inventado por Ole-Johan Dahl y Kristen Nygaard para Simula 67 , Brinch Hansen completó su texto con un capítulo sobre protección de recursos que proponía la primera notación de monitor, utilizando clases compartidas. [6] En 1973, se publicó Operating System Principles , convirtiéndose en el primer libro de texto completo sobre sistemas operativos. [7]
Instituto de Tecnología de California
En julio de 1972, Brinch Hansen se unió a la facultad de Caltech como profesor asociado de informática, donde comenzó a trabajar en la definición de un lenguaje de programación con procesos y monitores concurrentes. En abril de 1974, distribuyó un informe técnico sobre Concurrent Pascal . [1] [2] Un compilador de Pascal concurrente para el PDP 11/45 , escrito por el estudiante de doctorado de Brinch Hansen, Al Hartmann, fue lanzado en enero de 1975. [8] Posteriormente, Brinch Hansen comenzó a escribir sistemas operativos modelo en Pascal concurrente, para evaluar el idioma. En mayo de 1975, completó Solo, un sistema operativo de un solo usuario para el desarrollo de programas Concurrent Pascal. A continuación, reescribió el programador en tiempo real RC 4000 original en Concurrent Pascal, y tomó tres días para escribirlo y tres horas de tiempo de la máquina para probarlo sistemáticamente. [6]
Cuando el departamento de informática de Caltech cambió su enfoque hacia la ingeniería informática y se alejó de la programación, Brinch Hansen decidió irse, en lugar de buscar un puesto allí. [1]
Universidad del Sur de California
En 1976, Brinch Hansen eligió USC para su próximo puesto, para que su familia pudiera permanecer en su casa de Altadena . Al unirse a la facultad como profesor titular titular y primer presidente de un departamento de ciencias de la computación recién creado, dirigió los esfuerzos para identificar y atraer profesores de primer nivel para construir un departamento de primer nivel. En 1980, el Departamento de Ciencias de la Computación de la USC fue clasificado por el Consejo Nacional de Investigación como uno de los diez mejores en los EE. UU. [1]
Mientras estaba en la USC, Brinch Hansen escribió su segundo libro, The Architecture of Concurrent Programs, basado en su trabajo en el desarrollo de sistemas operativos con Concurrent Pascal. [2] Publicado en 1977, fue el primer libro sobre programación concurrente. [9] En 1978, Brinch Hansen se convirtió en el primer científico informático en obtener el título de Doctor en Técnicas, la más alta distinción académica dentro de la ingeniería y la ciencia tecnológica en Dinamarca, [10] por el trabajo documentado en La arquitectura de programas concurrentes . Más tarde, en 1978, Brinch Hansen publicó el concepto de lenguaje de procesos distribuidos, proponiendo el uso de llamadas a procedimientos remotos para sincronizar procesos que se ejecutan en una red de microcomputadoras. [11]
También en 1978, LJ Sevins y Steve Goings de Mostek visitaron a Brinch Hansen en la USC, donde describió una arquitectura multiprocesador de bajo costo . Mostek inició un proyecto para implementar tal multiprocesador, con Brinch Hansen trabajando como consultor. [1] Brinch Hansen desarrolló un nuevo lenguaje de programación concurrente, Edison, para el proyecto. [12] Al igual que con el proyecto RC 4000, Edison también se utilizó como lenguaje de especificación formal para el hardware. Mostek consiguió que funcionara un multiprocesador inicial de 4 nodos y Brinch Hansen escribió un compilador portátil de Edison en un PDP 11/55, pero poco después, United Technologies adquirió Mostek [13] y canceló el proyecto. En 1982, Brinch Hansen trasladó el sistema Edison a una PC IBM y luego publicó su tercer libro, Programación de una computadora personal . [14]
En 1982, Brinch Hansen fue nombrado el primer profesor Henry Salvatori de Ciencias de la Computación en la USC. [1]
Universidad de Copenhague
En 1984, sintiendo nostalgia por Dinamarca después de catorce años en el extranjero, Brinch Hansen dejó la USC y se unió a la facultad de la Universidad de Copenhague como profesor de datalogía . [1] En 1985, fue elegido miembro del IEEE . [15] Más tarde, en 1985, se publicó su cuarto libro Brinch Hansen on Pascal Compilers , que utilizó para su propio curso de compilación. [dieciséis]
Al diseñar un sistema operativo multicomputadora para la empresa danesa GN Elmi, Brinch Hansen concluyó que necesitaba un nuevo lenguaje, esta vez aprovechando el paradigma de transmisión de mensajes del CSP de Hoare . [1] El lenguaje resultante, Joyce , eliminó una limitación importante de CSP al introducir la recursividad paralela . [17] Brinch Hansen desarrolló una implementación portátil en una PC IBM. [1]
Universidad de Siracusa
Después de descubrir que ni él ni su familia se sentían como en casa en Dinamarca, Brinch Hansen decidió regresar a los Estados Unidos, pero descubrió que su estatus migratorio requería que lo hicieran muy rápido. Brinch Hansen se puso en contacto con John Reynolds en la Universidad de Syracuse y en 1987 se unió a la facultad como profesor distinguido. [1]
Trabajando con su alumno Rangachari Anand, Joyce fue trasladado a un multiprocesador Encore Multimax 320 en el Northeast Parallel Architectures Center de SU. Sin embargo, reconociendo las limitaciones de escala de los multiprocesadores, Brinch Hansen buscó un multicomputador adecuado para seguir trabajando. Adquiriendo una Meiko Computing Surface en 1989, comenzó a experimentar con aplicaciones científicas mediante el desarrollo de programas paralelos para la reducción de cabezas de familia y luego la simulación de n cuerpos como ejercicios de aprendizaje, y se sorprendió al descubrir que ambos programas tenían estructuras de control casi idénticas. Concluyendo que ambos encajan en un "paradigma de todos los pares", luego se centró en explorar estructuras de algoritmos paralelos reutilizables que denominó "paradigmas de programación" o "programas genéricos" (más tarde, conocidos popularmente como " patrones de diseño "). [1] En 1995, se publicó el quinto libro de Brinch Hansen, Studies in Computational Science: Parallel Programming Paradigms , [18] con programas reescritos en SuperPascal , un lenguaje de publicación completamente implementado que creó para algoritmos paralelos. [19]
Últimos años
En sus últimos años, Brinch Hansen publicó una retrospectiva de sus artículos más importantes, The Search for Simplicity (1996), [20] un texto para un curso de programación para no especializaciones, Programming for Everyone in Java (1999), [21 ] una retrospectiva sobre la evolución de los sistemas operativos, Classic Operating Systems: From Batch Processing to Distributed Systems (2001), [22] y una retrospectiva sobre la evolución de la programación concurrente, The Origin of Concurrent Programming: From Semaphores to Remote Procedure Calls ( 2002). [23] Él mismo publicó un libro de memorias de 2004, A Programmer's Story: The Life of a Computer Pioneer , en su sitio web. [1]
En 2002, Brinch Hansen recibió el premio IEEE Computer Pioneer Award "Por el desarrollo pionero en sistemas operativos y programación concurrente ejemplificada por el trabajo en el sistema de multiprogramación RC 4000, monitores y Concurrent Pascal". [15]
El 31 de julio de 2007, Brinch Hansen murió, poco después de que le diagnosticaran cáncer terminal. [24]
Vida personal
Brinch Hansen conoció a su esposa Milena (de soltera Hrastar) en un viaje de estudios a Yugoslavia en 1962. Se casaron en 1965 y tuvieron dos hijos, la hija Mette y el hijo Thomas. [1]
Contribuciones e impactos científicos
En una carrera que abarca cinco décadas, Brinch Hansen hizo contribuciones fundamentales en las áreas de sistemas operativos, computación concurrente y computación paralela y distribuida que influyeron en la configuración del desarrollo de esos campos y su avance desde técnicas ad hoc hasta disciplinas de ingeniería sistemática. [15] El impacto de su trabajo fue amplificado por su "búsqueda incansable de la simplicidad", [15] su insistencia en la claridad, escribiendo y reescribiendo sus artículos muchas veces antes de publicarlos, [20] convirtiéndose en "uno de los mejores explicadores en el business ", [25] y su compromiso de probar conceptos en sistemas de trabajo: Brinch Hansen implementó y distribuyó sistemas de trabajo para los nuevos conceptos que desarrolló, y señaló:
No es raro que un científico de la computación haga una propuesta sin probar si es buena en la práctica. Después de pasar 3 días redactando la propuesta del monitor y 3 años implementándola, puedo entender muy bien esta tentación. Quizás también sea a veces una respuesta humana a la tremenda presión sobre los profesores universitarios para obtener fondos y reconocimiento rápidamente. Sin embargo, debemos recordar que solo una cosa cuenta en ingeniería: ¿funciona (no "podría funcionar" o "no sería bueno si funcionara")? [26]
Sistemas operativos
El sistema de multiprogramación RC 4000 introdujo el concepto ahora estándar de un núcleo de sistema operativo y la separación de políticas y mecanismos en el diseño del sistema operativo. Las arquitecturas de microkernel modernas tienen sus raíces en la arquitectura de núcleo extensible del RC 4000. [15] La mejora del rendimiento del microkernel fue un tema importante en la investigación de sistemas operativos durante tres décadas después del RC 4000.
El texto de Brinch Hansen, Operating System Principles , fue el primer libro de texto completo sobre sistemas operativos. Finalmente, publicado en seis idiomas (inglés, japonés, alemán, checo, polaco y serbocroata), [1] permaneció impreso durante décadas, y años después de que el sistema RC 4000 que describía se hubiera quedado obsoleto. En 1990, casi dos décadas después de su publicación inicial, PJ Plauger lo revisó y dijo:
Este libro está terriblemente anticuado. Describe muchos de los algoritmos del sistema operativo del RC4000. El RC4000 es lento, pequeño y no dispone de periféricos según los estándares actuales. Los algoritmos se presentan en un subconjunto de Pascal. ¿Por qué molestarse? La respuesta es que Brinch Hansen es uno de los mejores explicadores del negocio. Explica las cosas claramente y al grano. Tiene buen ojo para el principio general detrás del ejemplo, pero se las arregla para evitar abstracciones innecesarias. Después de todos estos años, todavía es un placer leerlo. [25]
En 2005, los miembros de ACM votaron a los Principios del sistema operativo como uno de los 25 libros clásicos principales, en una encuesta para elegir libros clásicos agotados para agregar a la Biblioteca digital de ACM. Los Principios del Sistema Operativo ocuparon el puesto 15 en la encuesta, apareciendo en el 8.8% de las papeletas. [27] Ahora está disponible en la Biblioteca digital de ACM .
Con Concurrent Pascal, Brinch Hansen demostró que era factible implementar completamente los sistemas operativos en lenguajes de alto nivel, y que hacerlo reducía el esfuerzo de desarrollo en uno o dos órdenes de magnitud. [28] Además, los sistemas operativos completos podrían publicarse y entenderse en su totalidad. Brinch Hansen hizo precisamente eso en La arquitectura de los programas concurrentes , lo que llevó a Roy Maddux y Harlan Mills a declarar:
La segunda parte del libro es realmente notable. Aquí, todo un sistema operativo es visible, con cada línea de programa abierta al escrutinio. No hay ningún misterio oculto, y después de estudiar ejemplos tan extensos, el lector siente que podría abordar trabajos similares y que podría cambiar el sistema a voluntad. Nunca antes habíamos visto un sistema operativo mostrado con tanto detalle y de una manera tan susceptible de modificación. [29]
Programación concurrente
Brinch Hansen y Hoare desarrollaron el concepto de monitor. Brinch Hansen publicó la primera notación de monitor, adoptando el concepto de clase de Simula 67, [7] e inventó un mecanismo de cola. [30] Hoare perfeccionó las reglas de reanudación del proceso. [31] Brinch Hansen creó la primera implementación de monitores, en Concurrent Pascal. [6] En 1990 se crearon más de una docena de lenguajes adicionales basados en monitores: Simone, Modula , CSP / k, CCNPascal, PLY, Pascal Plus, Mesa, SB-Mod, Concurrent Euclid , Pascalc, Concurrent C, Emerald, Real -tiempo Euclid, Pascal-FC, Turing Plus , Predula. [6]
Pascal concurrente fue el primer lenguaje de programación concurrente: [29] el primer lenguaje desarrollado específicamente para programación concurrente y, lo que es más importante, el primer lenguaje en demostrar que era posible incorporar instalaciones seguras [32] de alto nivel para concurrencia, donde el El sistema podría garantizar que los procesos accedan a conjuntos disjuntos de variables únicamente y que no interfieran entre sí de forma dependiente del tiempo. [23] Hoare lo describió como "un ejemplo sobresaliente de lo mejor de la investigación académica en esta área". [33]
El código fuente y portátil para Concurrent Pascal y el sistema operativo Solo se distribuyó a al menos 75 empresas y 100 universidades en 21 países, lo que resultó en su adopción, portabilidad y adaptación generalizadas tanto en la industria como en la academia. [6] Greg Andrews observó que Concurrent Pascal y los monitores "influyeron mucho en la mayoría de las propuestas subsiguientes de idiomas concurrentes". [6]
The Architecture of Concurrent Programs de Brinch Hansen fue el primer libro sobre programación concurrente, [29] y finalmente se publicó en tres idiomas (inglés, japonés y alemán). [1] Más de una docena de años después de su publicación, PJ Plauger observó:
Claro, se han realizado mejoras en los últimos doce años. Tenemos mejores algoritmos de sincronización y lenguajes más sofisticados (si no necesariamente mejores) con control de concurrencia. Pero no encontrará una mejor descripción general de la programación concurrente que este libro. Al menos no he encontrado ninguno. [25]
En 2005, los miembros de ACM votaron La arquitectura de los programas concurrentes como uno de los 25 libros clásicos principales, ocupando el puesto 18 en la encuesta y apareciendo en el 8% de las papeletas. [27] Ahora está disponible en la Biblioteca digital de ACM .
Computación distribuida y llamada a procedimiento remoto
Las llamadas a procedimientos remotos que se utilizan en los sistemas operativos modernos tienen sus raíces en el sistema de multiprogramación RC 4000, [15] que utilizaba un protocolo de comunicación de solicitud-respuesta para la sincronización de procesos. [34]
En su artículo de 1978 sobre procesos distribuidos, Brinch Hansen propuso un lenguaje para la computación distribuida basado en solicitudes externas que consisten en llamadas a procedimientos entre procesos. [35] Esto más tarde se conoció en el contexto del sistema operativo como llamada a procedimiento remoto. [36]
Más tarde, Brinch Hansen desarrolló dos lenguajes ampliando el paradigma de paso de mensajes CSP de Hoare con recursividad paralela, [17] [19] y mostró cómo implementarlo de manera eficiente. [37]
Honores y premios
- Doctor en Técnicas, Universidad Técnica de Dinamarca , por la Arquitectura de Programas Concurrentes, 1978
- Primer profesor Henry Salvatori de Ciencias de la Computación, Universidad del Sur de California , 1982
- Miembro del IEEE , 1985
- Profesor distinguido, Universidad de Syracuse , 1987
- Medalla del Canciller, Universidad de Syracuse , 1989
- Premio IEEE Computer Pioneer , por el desarrollo pionero en sistemas operativos y programación concurrente ejemplificado por el trabajo en el sistema de multiprogramación RC 4000, monitores y Concurrent Pascal , 2002
Lenguajes de programación
- Pascal concurrente (1975)
- Procesos distribuidos (1978)
- Edison (1981)
- Joyce (1987)
- SuperPascal (1993)
Citas
- Escribir es una prueba rigurosa de simplicidad: simplemente no es posible escribir de manera convincente sobre ideas que no se pueden entender [20]
- La programación es el arte de escribir ensayos en prosa clara como el cristal y hacerlos ejecutables [9]
Publicaciones
- Libros
- Principios del sistema operativo (1973, ISBN 0-13-637843-9 )
- La arquitectura de programas concurrentes (1977, ISBN 0-13-044628-9 )
- Programación de una computadora personal (1983, ISBN 0-13-730267-3 )
- Brinch Hansen en Pascal Compilers (1985, ISBN 0-13-083098-4 )
- Estudios en ciencia computacional: paradigmas de programación paralela (1995, ISBN 0-13-439324-4 )
- La búsqueda de la simplicidad: ensayos en programación paralela (1996, ISBN 0-81-867566-7 )
- Programación para todos en Java (1999, ISBN 0-387-98683-9 )
- Sistemas operativos clásicos: del procesamiento por lotes a los sistemas distribuidos (editor, 2001, ISBN 0-387-95113-X )
- El origen de la programación concurrente: de los semáforos a las llamadas a procedimientos remotos (editor, 2002, ISBN 0-387-95401-5 )
- A Programmer's Story: The Life of a Computer Pioneer (2004, disponible en http://brinch-hansen.net/ )
- Artículos seleccionados
- El compilador Cobol para Siemens 3003 , BIT 6, 1 (1966), 1–23 (con Roger House)
- Consideraciones de diseño para la computadora RC 4000 , Regnecentralen, Copenhague, Dinamarca (1966) (con Peter Kraft)
- La estructura lógica de la computadora RC 4000 , BIT 7, 3 (1967), 191-1999
- El sistema de control en tiempo real RC 4000 en Pulawy , BIT 7, 4 (1967), 279–288
- Software RC 4000: Sistema de multiprogramación, Parte I Descripción general , Regnecentralen, Copenhague, Dinamarca (1969) 13–52
- Software RC 4000: Sistema de multiprogramación (completo) , Regnecentralen, Copenhague, Dinamarca (1969)
- Computadora RC 4000: Manual de referencia , Regnecentralen, Copenhague, Dinamarca (1969)
- El núcleo de un sistema de multiprogramación , Communications of the ACM 13, 4 (abril de 1970), 238–242
- Un esbozo de un curso sobre principios de sistemas operativos , en Técnicas de sistemas operativos , Actas de un seminario en Queen's University, Belfast, Irlanda del Norte, agosto-septiembre de 1971. CAR Hoare y RH Perrott, Eds. Academic Press, Nueva York (1972), 29–36
- Multiprogramación estructurada , Communications of the ACM 15, 7 (julio de 1972), 574–578
- Clases compartidas , en Principios del sistema operativo , Sección 7.2 Concepto de clase, Prentice Hall, Englewood Cliffs, Nueva Jersey, (julio de 1973), 226–232
- Prueba de un sistema de multiprogramación , software: práctica y experiencia 3, 2 (abril-junio), 145–150
- El lenguaje de programación Concurrent Pascal , IEEE Transactions on Software Engineering 1, 2 (junio de 1975), 199–207
- El sistema operativo Solo: un programa Pascal concurrente , software: práctica y experiencia 6, 2 (abril-junio de 1976), 141-149
- El sistema operativo Solo: procesos, monitores y clases , software: práctica y experiencia 6, 2 (abril-junio de 1976), 165–200
- The Programmer as a Young Dog , traducción al inglés del autor de Programmøren som hvalp, In Niels Ivar Bech — en epoke i edbudviklingen i Danmark , P. Sveistrup, P. Naur, HB Hansen y C. Gram, Eds., (En Danés), Data, Copenhague, Dinamarca, (1976), 65–68
- Experiencia con programación simultánea modular , IEEE Transactions on Software Engineering 3, 2 (marzo de 1977), 156–159
- Principios de diseño , en La arquitectura de programas concurrentes , Capítulo 1 Principios de diseño, Prentice Hall, Englewood Cliffs, Nueva Jersey, (julio de 1977), 3-14
- Red: un programa multiprocesador , IEEE Transactions on Software Engineering 4, 3 (mayo de 1978), 194-199
- Procesos distribuidos: un concepto de programación concurrente , Communications of the ACM 21, 11 (noviembre de 1978), 934–941
- Pruebas reproducibles de monitores , software: práctica y experiencia 8, 6 (noviembre-diciembre), 721–729
- Discurso de apertura sobre programación concurrente , Discurso de apertura para la Conferencia de aplicaciones y software informático IEEE , Chicago, IL, noviembre de 1978, Computer 12, 5 (mayo de 1979), 50–56
- The Design of Edison , Software — Practice and Experience 11, 4 (abril de 1981), 363–396
- Joyce — Un lenguaje de programación para sistemas distribuidos , Software— Practice and Experience 17, 1 (enero de 1987), 29–50
- The Joyce Language Report , Software — Practice and Experience 19, 6 (junio de 1989), 553–578
- Una implementación multiprocesador de Joyce , Software — Practice and Experience 19, 6 (junio de 1989), 579–592
- La naturaleza de la programación paralela , Simposio inaugural en la Universidad de Syracuse, Syracuse, NY, marzo de 1989, In Natural and Artificial Parallel Computation , MA Arbib y JA Robinson, Eds. The MIT Press, Cambridge, MA, (1990), 31–46
- La búsqueda lineal redescubierta , Programación estructurada 11, (1990), 53–55
- Reducción de ecuaciones lineales por parte del hogar , Encuestas de computación de ACM 24, 2 (junio de 1992), 185-194
- Monitors and Concurrent Pascal: A personal history , 2nd ACM Conference on the History of Programming Languages , Cambridge, MA, abril de 1993, en SIGPLAN Notices 28, 3 (marzo de 1993), 1–35
- Programas modelo para la ciencia computacional: una metodología de programación para multicomputadoras , Concurrencia — Práctica y experiencia 5, 5 (agosto de 1993), 407–423
- Autómatas celulares paralelos: un programa modelo para la ciencia computacional , Concurrencia — Práctica y experiencia 5, 5 (agosto de 1993), 425–448
- Revisión de la división de varias longitudes: un recorrido por el campo minado , Software — Practice and Experience 24, (junio de 1994), 579–601
- SuperPascal — Un lenguaje de publicación para computación científica paralela , Concurrency — Practice and Experience 6, 5 (agosto de 1994), 461–483
- Control de interferencias en SuperPascal: un lenguaje paralelo de lenguaje estructurado en bloques , The Computer Journal 37, 5 (1994), 399–406
- Recursión paralela eficiente , SIGPLAN Notices 30, 12 (diciembre de 1995), 9–16
- La canalización de todos los pares , en Studies in Computational Science , Capítulo 4: La canalización de todos los pares. Prentice Hall, Englewood Cliffs, Nueva Jersey, (marzo de 1995), págs. 73–89
- Equilibrio de una tubería , en Estudios de ciencia computacional , Capítulo 5: Equilibrio de una tubería. Prentice Hall, Englewood Cliffs, Nueva Jersey, (marzo de 1995), 90–100
- El inseguro paralelismo de Java , SIGPLAN Notices 34, 4 (abril de 1999), 38–45
- La evolución de los sistemas operativos , In Classic Operating Systems: From Batch Processing to Distributed Systems , P. Brinch Hansen, Ed., Springer-Verlag, Nueva York (2001)
- La invención de la programación concurrente , In The Origin of Concurrent Programming: From Semaphores to Remote Procedure Calls , P. Brinch Hansen, Ed., Springer-Verlag, Nueva York (2002)
Ver también
- Lista de pioneros en informática
Referencias
- ^ a b c d e f g h i j k l m n o p q r s t u v Brinch Hansen, Per (2004). La historia de un programador: la vida de un pionero de la informática .
- ^ a b c d e Haigh, Thomas (19 de febrero de 2003). "Per Brinch Hansen" (PDF) . IEEE Annals of the History of Computing . 25 : 80–83. doi : 10.1109 / MAHC.2003.1179888 . S2CID 2279629 .
- ^ Buchholz, Werner (1962). Planificación de un sistema informático: Project Stretch (PDF) . Archivado desde el original (PDF) el 3 de abril de 2017 . Consultado el 14 de diciembre de 2015 .
- ^ Dijkstra, Edsger (septiembre de 1965). "Cooperación de procesos secuenciales" . Universidad Tecnológica, Eindhoven, Holanda .
- ^ Brinch Hansen, Per (abril de 1970). "El núcleo de un sistema de multiprogramación" (PDF) . Comunicaciones de la ACM . 13 (4): 238–241. CiteSeerX 10.1.1.105.4204 . doi : 10.1145 / 362258.362278 . S2CID 9414037 .
- ^ a b c d e f Brinch Hansen, Per (abril de 1993). "Monitores y Pascal concurrente: una historia personal" (PDF) . II Congreso ACM sobre Historia de los Lenguajes de Programación .
- ^ a b Brinch Hansen, Per (1973). Principios del sistema operativo . Prentice Hall. ISBN 978-0-13-637843-3.
- ^ Hartmann, Alfred C. (1977). Un compilador Pascal concurrente para miniordenadores . Apuntes de conferencias en Ciencias de la Computación. 50 . Heidelberg, Alemania: Springer-Verlag Lecture Notes in Computer Science. doi : 10.1007 / 3-540-08240-9 . ISBN 978-3-540-08240-8. S2CID 2960929 .
- ^ a b Brinch Hansen, Per (1977). La arquitectura de programas concurrentes . Prentice Hall. ISBN 978-0-13-044628-2.
- ^ "El Grado Clásico de Doctorado en Técnicas (Dr.techn.) - DTU" . Universidad Técnica de Dinamarca . Consultado el 14 de diciembre de 2015 .
- ^ Brinch Hansen, Per (noviembre de 1978). "Procesos distribuidos: un concepto de programación concurrente" (PDF) . Comunicaciones de la ACM . 21 (11): 934–941. CiteSeerX 10.1.1.107.3108 . doi : 10.1145 / 359642.359651 . S2CID 11610744 .
- ^ Brinch Hansen, Per (abril de 1981). "El diseño de Edison" (PDF) . Software: práctica y experiencia .
- ^ Lueck, Thomas J. (18 de octubre de 1985). "MOSTEK, GRAN FABRICANTE DE CHIP, CERRAR" . The New York Times . ISSN 0362-4331 . Consultado el 15 de diciembre de 2015 .
- ^ Brinch Hansen, Per (1982). Programación de una computadora personal . Prentice Hall. ISBN 978-0-13-730267-3.
- ^ a b c d e f "Per Brinch Hansen • IEEE Computer Society" . www.computer.org . Consultado el 14 de diciembre de 2015 .
- ^ Brinch Hansen, Per (1985). Brinch Hansen en Pascal Compilers . Prentice Hall. ISBN 978-0-13-083098-2.
- ^ a b Brinch Hansen, Per (enero de 1987). "Joyce: un lenguaje de programación para sistemas distribuidos" (PDF) . Software: práctica y experiencia .
- ^ Brinch Hansen, Per (1995). Estudios en Ciencias Computacionales: Paradigmas de Programación Paralela . Prentice Hall. ISBN 978-0-13-439324-7.
- ^ a b Brinch Hansen, Per (agosto de 1994). "SuperPascal: un lenguaje de publicación para la computación científica paralela" (PDF) . Simultaneidad: práctica y experiencia .
- ^ a b c Brinch Hansen, Per (1996). La búsqueda de la simplicidad . IEEE Computer Society Press. ISBN 978-0-81-867566-9.
- ^ Brinch Hansen, Per (1999). Programación para todos en Java . Springer-Verlag. ISBN 978-0-387-98683-8.
- ^ Brinch Hansen, Per (2001). Sistemas operativos clásicos: desde el procesamiento por lotes hasta los sistemas distribuidos . Springer-Verlag. ISBN 978-0-387-95113-3.
- ^ a b Brinch Hansen, Per (2002). El origen de la programación concurrente: de los semáforos a las llamadas a procedimientos remotos . Springer-Verlag. ISBN 978-0-387-95401-1.
- ^ "LC Smith lamenta el fallecimiento del profesor Per Brinch Hansen" . SU Ingeniería y Ciencias de la Computación . Archivado desde el original el 22 de diciembre de 2015 . Consultado el 14 de diciembre de 2015 .
- ^ a b c Plauger, PJ (febrero de 1990). "Lo último". Programación de sistemas embebidos .
- ^ Brinch Hansen, Per (abril de 1976). "Innovación y trivia en ingeniería de programas (Editorial Invitada)". Software: práctica y experiencia .
- ^ a b Patterson, David (marzo de 2006). "Reviviendo sus libros favoritos de CS". Comunicaciones de la ACM . 49 (3): 31. doi : 10.1145 / 1118178.1118213 . S2CID 1537883 .
- ^ Brinch Hansen, Per (abril de 1976). "El sistema operativo Solo: un programa Pascal concurrente" (PDF) . Software: práctica y experiencia .
- ^ a b c Maddux, R. y Mills, H. (mayo de 1979). "Revisión de la arquitectura de programas concurrentes". Computadora . 12 (5): 102. doi : 10.1109 / mc.1979.1658762 .
- ^ Brinch Hansen, Per (julio de 1972). "Multiprogramación estructurada (Trabajo invitado)". Comunicaciones de la ACM . 15 (7): 574–578. doi : 10.1145 / 361454.361473 . S2CID 14125530 .
- ^ Hoare, CAR (octubre de 1974). "Monitores: un concepto de estructuración de un sistema operativo". Comunicaciones de la ACM . 17 (10): 549–557. CiteSeerX 10.1.1.24.6394 . doi : 10.1145 / 355620.361161 . S2CID 1005769 .
- ^ Hoare, CAR (1974). "Consejos sobre el diseño de lenguajes de programación". En Confiabilidad de los sistemas informáticos, C. Bunyan, Ed. : 505–534.
- ^ Hoare, CAR (1976). "Sugerencias para el diseño de un lenguaje de programación para comando y control en tiempo real". En software en tiempo real: Informe internacional sobre el estado del arte, JP Spencer, Ed. : 685–699.
- ^ Brinch Hansen, Per (1969). Software informático RC 4000: Sistema de multiprogramación (PDF) . Copenhague, Dinamarca: Regnecentralen.
- ^ Brinch Hansen, Per (noviembre de 1978). "Procesos distribuidos: un concepto de programación concurrente" (PDF) . Comunicaciones de la ACM . 21 (11): 934–941. CiteSeerX 10.1.1.107.3108 . doi : 10.1145 / 359642.359651 . S2CID 11610744 .
- ^ Andrews, Greg (1991). Programación concurrente: principios y práctica . Redwood City, CA: Benjamin Cummings. ISBN 978-0-80-530086-4.
- ^ Brinch Hansen, Per (diciembre de 1995). "Recursividad paralela eficiente" (PDF) . Avisos SIGPLAN .
enlaces externos
- Sitio web personal con memorias, artículos seleccionados y bibliografía detallada
- Primeros trabajos de Per Brinch Hansen (1966-1970) en el Datamuseum danés