Por Brinch Hansen

Científico informático danés-estadounidense

Por Brinch Hansen
Por Brinch Hansen en 1999
Nacido( 13 de noviembre de 1938 )13 de noviembre de 1938
Fallecido31 de julio de 2007 (31 de julio de 2007)(68 años)
Alma máterUniversidad Técnica de Dinamarca
Conocido por
CónyugeMilena
Niños2
Premios
Carrera científica
CamposCiencias de la Computación
Instituciones
Sitio webbrinch-hansen.net

Per Brinch Hansen (13 de noviembre de 1938 - 31 de julio de 2007) fue un científico informático danés - estadounidense conocido por su trabajo en sistemas operativos , programación concurrente y computación paralela y distribuida .

Biografía

Vida temprana y educación

Per Brinch Hansen cuando era estudiante en 1959
Tenía 21 años en 1959

Per Brinch Hansen nació en Frederiksberg , un enclave rodeado por Copenhague , Dinamarca . Su padre, Jørgen Brinch Hansen, trabajó como ingeniero civil, convirtiéndose en un destacado experto en mecánica de suelos , y más tarde 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 Skt. Jørgens Gymnasium y luego estudió ingeniería eléctrica en la Universidad Técnica de Dinamarca, donde buscó un área en la que dedicarse que "todavía estuviera en su fase pionera" con la creencia de que "si se estaba enseñando una materia, probablemente ya era 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 centrado en la construcción de computadoras, la lectura de un libro sobre el proyecto IBM 7030 Stretch que describía la organización de las computadoras desde el punto de vista de un programador [3] reorientó su interés hacia convertirse en arquitecto de computadoras. [1]

Centrales de regulación

Per Brinch Hansen a los 29 años, en el laboratorio de computación RC 4000 (1967)
A los 29 años, en el laboratorio de informática RC 4000 (1967)

Después de completar una maestría en ciencias en ingeniería electrónica en 1963, Brinch Hansen consiguió un trabajo en Regnecentralen , entonces una institución de investigación dependiente de la Academia Danesa de Ciencias Técnicas (Akademiet for de Tekniske Videnskaber), trabajando en el grupo de compiladores, dirigido por Peter Naur y Jørn Jensen . [2] Allí, su primer proyecto importante 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 más tarde: [1]

Ahora comprendo que en realidad se trataba de un pequeño sistema operativo que yo había programado. Sin embargo, a mediados de los años 60, la línea divisoria entre la implementación de lenguajes y los sistemas operativos aún no estaba clara.

En 1966, Brinch Hansen se incorporó al grupo de hardware de Henning Isaksson en Regnecentralen, que por aquel entonces era una empresa con accionistas. Junto con Peter Kraft, definió la arquitectura informática y el conjunto de instrucciones para el tercer ordenador de Regnecentralen, el RC 4000, utilizando ALGOL 60 como lenguaje de descripción de hardware para producir una especificación formal .

Sin experiencia en multiprogramación , utilizó una copia de Cooperating Sequential Processes [4] que Edsger Dijkstra le había enviado para que comprendiera la sincronización de procesos mediante semáforos , y luego implementó un monitor RC 4000 en tiempo real especializado 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 jefe de 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 propósito general , con el objetivo de evitar el desarrollo de un sistema operativo de control en tiempo real personalizado para cada instalación RC 4000, y para soportar el procesamiento por lotes y el tiempo compartido también. [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] Para la primavera de 1969, se estaba ejecutando una versión confiable y bien documentada del sistema de multiprogramación RC 4000. [1]

Universidad Carnegie Mellon

A finales de 1970, Brinch Hansen se mudó a Pittsburgh , aceptando una invitación de Alan Perlis para visitar el departamento de informática 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 un simposio en Belfast , Brinch Hansen, Tony Hoare y Dijkstra comenzaron a discutir ideas que evolucionaron hasta convertirse en 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 Tecnológico de California

Per Brinch Hansen en el Taj Mahal, después de asistir a una conferencia en Bombay (1975)
En el Taj Mahal, después de asistir a una conferencia en Bombay (1975)

En julio de 1972, Brinch Hansen se unió a la facultad del Instituto de Tecnología de California (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 Concurrent Pascal 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 Concurrent Pascal, para evaluar el lenguaje. 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 original en tiempo real RC 4000 en Concurrent Pascal, tardando tres días en escribirlo y tres horas de tiempo de 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 la titularidad allí. [1]

Universidad del Sur de California

En 1976, Brinch Hansen eligió la Universidad del Sur de California (USC) para su siguiente puesto, de modo que su familia pudiera permanecer en su hogar de Altadena . Se incorporó a la facultad como profesor titular y primer director de un departamento de informática de reciente creación, y dirigió los esfuerzos para identificar y atraer a profesores de primer nivel para construir un departamento de primera clase. En 1980, el departamento de informática de la USC fue clasificado por el Consejo Nacional de Investigación como uno de los diez mejores de Estados Unidos. [1]

Mientras estaba en la USC, Brinch Hansen escribió su segundo libro, The Architecture of Concurrent Programs, basado en su trabajo de 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 galardonado con el título de Doctor Technices, la distinción académica más alta dentro de la ingeniería y la ciencia tecnológica en Dinamarca, [10] por el trabajo documentado en The Architecture of Concurrent Programs . Más tarde, en 1978, Brinch Hansen publicó el concepto de lenguaje Distributed Processes, proponiendo el uso de llamadas a procedimientos remotos para sincronizar procesos que se ejecutan a través de 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 de multiprocesador de bajo costo. Mostek comenzó un proyecto para implementar dicho 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 Edison portátil 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 computadora personal (PC) IBM, y luego publicó su tercer libro, Programming a Personal Computer . [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 de Dinamarca después de 14 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 Instituto de Ingenieros Eléctricos y Electrónicos (IEEE). [15] Más tarde, en 1985, se publicó su cuarto libro Brinch Hansen on Pascal Compilers , que utilizó para su propio curso de compiladores. [16]

Mientras diseñaba un sistema operativo multicomputadora para la compañía danesa GN Elmi, Brinch Hansen concluyó que necesitaba un nuevo lenguaje, esta vez aprovechando el paradigma de paso de mensajes del CSP de Hoare . [1] El lenguaje resultante, Joyce , eliminó una limitación importante del CSP al introducir la recursión paralela . [17] Brinch Hansen desarrolló una implementación portátil en una IBM PC. [1]

Universidad de Siracusa

Per Brinch Hansen de vacaciones en Washington, DC (1990)
De vacaciones en Washington, DC (1990)

Tras comprobar que ni él ni su familia se sentían a gusto en Dinamarca, Brinch Hansen decidió regresar a Estados Unidos, pero descubrió que su situación migratoria les exigía hacerlo muy rápidamente. Brinch Hansen se puso en contacto con John Reynolds en la Universidad de Syracuse y en 1987 se incorporó a la facultad como profesor distinguido. [1]

Mientras trabajaba con su estudiante Rangachari Anand, Joyce pasó a utilizar un multiprocesador Encore Multimax 320 en el Centro de Arquitecturas Paralelas del Noreste de la Universidad de Sudamérica. Sin embargo, al reconocer las limitaciones de escalabilidad de los multiprocesadores, Brinch Hansen buscó un multiordenador adecuado para seguir trabajando. En 1989 adquirió un Meiko Computing Surface y comenzó a experimentar con aplicaciones científicas desarrollando programas paralelos para el método de Householder (reducción) 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. Al concluir que ambos encajaban en un "paradigma de todos los pares", 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 especialistas, 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] Autopublicó una autobiografía en 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 ejemplificado 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: su hija Mette y su hijo Thomas. [1]

Contribuciones e influencia científica

En una carrera que abarcó cinco décadas, Brinch Hansen hizo contribuciones fundamentales en las áreas de sistemas operativos, computación concurrente y computación paralela y distribuida que fueron influyentes en la conformación del desarrollo de esos campos y en su avance desde técnicas ad hoc hasta disciplinas de ingeniería sistemática. [15] La influencia de su trabajo se vio amplificada por su "búsqueda incesante 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 negocio", [25] y su compromiso con la prueba de conceptos en sistemas de trabajo: Brinch Hansen implementó y distribuyó sistemas de trabajo para los nuevos conceptos que desarrolló, señalando:

No es raro que un informático haga una propuesta sin comprobar si es buena en la práctica. Después de pasar tres días redactando la propuesta de monitorización y tres años implementándola, puedo entender perfectamente esta tentación. Quizá también sea a veces una respuesta humana a la tremenda presión que sufren los profesores universitarios para conseguir financiación y reconocimiento rápidamente. Sin embargo, debemos recordar que en ingeniería sólo cuenta una cosa: ¿funciona? (no "¿podría funcionar?" o "¿no sería genial si funcionara?"). [26]

Sistemas operativos

El sistema multiprogramación RC 4000 introdujo el concepto, ahora estándar, de núcleo de sistema operativo y la separación de mecanismos y políticas en el diseño de sistemas operativos. Las arquitecturas de micronúcleo modernas tienen sus raíces en la arquitectura de núcleo extensible del RC 4000. [15] Mejorar el rendimiento del micronúcleo fue un tema importante en la investigación de sistemas operativos durante las tres décadas posteriores al RC 4000.

El texto de Brinch Hansen, Operating System Principles , fue el primer libro de texto completo sobre sistemas operativos. Publicado finalmente 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 volviera 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 RC4000. El RC4000 es lento, pequeño y carece 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 sector. Explica las cosas con claridad y al grano. Tiene buen ojo para el principio general que se esconde detrás del ejemplo, pero se las arregla para evitar abstracciones innecesarias. Después de todos estos años, sigue siendo un placer leerlo. [25]

En 2005, los miembros de la Association for Computing Machinery (ACM) eligieron a Operating System Principles como uno de los 25 libros clásicos más importantes en una encuesta para elegir libros clásicos descatalogados para agregarlos a la Biblioteca Digital de la ACM. Operating System Principles ocupó el puesto 15 en la encuesta, apareciendo en el 8,8% de las papeletas. [27] Ahora está disponible en la Biblioteca Digital de la ACM.

Brinch Hansen demostró con Concurrent Pascal que era factible implementar sistemas operativos en lenguajes de alto nivel y que al hacerlo se reducía el esfuerzo de desarrollo en uno o dos órdenes de magnitud. [28] Además, se podían publicar sistemas operativos completos y comprenderlos en su totalidad. Brinch Hansen hizo precisamente eso en The Architecture of Concurrent Programs , lo que llevó a Roy Maddux y Harlan Mills a declarar:

La segunda parte del libro es realmente notable. En ella se puede ver un sistema operativo completo, 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 tareas 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 colas. [30] Hoare refinó las reglas de reanudación de procesos. [31] Brinch Hansen creó la primera implementación de monitores, en Concurrent Pascal. [6] Más de una docena de lenguajes adicionales basados ​​en monitores se habían creado en 1990: Simone, Modula , CSP/k, CCNPascal, PLY, Pascal Plus, Mesa, SB-Mod, Concurrent Euclid , Pascalc, Concurrent C, Emerald, Real-time Euclid, Pascal-FC, Turing Plus , Predula. [6]

Pascal fue el primer lenguaje de programación concurrente: [29] el primer lenguaje desarrollado específicamente para programación concurrente y, más importante aún, el primer lenguaje en demostrar que era posible incorporar funciones seguras [32] de alto nivel para la concurrencia, donde el sistema podía garantizar que los procesos accedieran únicamente a conjuntos disjuntos de variables y no interfirieran entre sí de manera 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 el código portable de Concurrent Pascal y el sistema operativo Solo se distribuyeron a al menos 75 empresas y 100 universidades en 21 países, lo que dio como resultado su adopción, portabilidad y adaptación generalizadas tanto en la industria como en el mundo académico. [6] Greg Andrews observó que Concurrent Pascal y los monitores "influyeron enormemente en la mayoría de las propuestas de lenguajes concurrentes posteriores". [6]

La arquitectura de programas concurrentes 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ó:

Por supuesto, se han hecho mejoras en los últimos doce años. Tenemos mejores algoritmos de sincronización y lenguajes más sofisticados (si bien 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 yo no he encontrado ninguno. [25]

En 2005, los miembros de la ACM votaron a La arquitectura de programas concurrentes como uno de los 25 libros clásicos más importantes, ubicándolo en el puesto 18 de la encuesta y apareciendo en el 8% de las papeletas. [27] Ahora está disponible en la Biblioteca digital de la ACM.

Computación distribuida y llamada a procedimiento remoto

Las llamadas a procedimientos remotos utilizadas en los sistemas operativos modernos tienen sus orígenes 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 computación distribuida basado en solicitudes externas que consisten en llamadas a procedimientos entre procesos. [35] Esto más tarde se conoció en un contexto de sistema operativo como la llamada a procedimiento remoto. [36]

Más tarde, Brinch Hansen desarrolló dos lenguajes que extendían el paradigma de paso de mensajes CSP de Hoare con recursión paralela, [17] [19] y mostró cómo implementarlo eficientemente. [37]

Honores y premios

Lenguajes de programación

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 y clara y hacerlos ejecutables [9]

Publicaciones

Libros
  • Principios de los sistemas operativos (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 sobre los compiladores Pascal (1985, ISBN 0-13-083098-4 ) 
  • Estudios en Ciencias Computacionales: Paradigmas de Programación Paralela (1995, ISBN 0-13-439324-4 ) 
  • La búsqueda de la simplicidad: ensayos sobre 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 ) 
  • La historia de un programador: la vida de un pionero de la informática (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 del ordenador RC 4000, BIT 7, 3 (1967), 191– 199
  • El sistema de control en tiempo real RC 4000 en Pulawy, BIT 7, 4 (1967), 279–288
  • RC 4000 Software: Sistema de multiprogramación, Parte I Descripción general, Regnecentralen, Copenhague, Dinamarca (1969) 13–52
  • RC 4000 Software: Sistema de multiprogramación (completo), Regnecentralen, Copenhague, Dinamarca (1969)
  • Manual de referencia de la computadora RC 4000, Regnecentralen, Copenhague, Dinamarca (1969)
  • El núcleo de un sistema multiprogramado, Communications of the ACM 13, 4 (abril de 1970), 238–242
  • Esquema de un curso sobre principios de sistemas operativos, en Operating Systems Techniques , Actas de un seminario en la 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 de sistemas operativos , Sección 7.2 Concepto de clase, Prentice Hall, Englewood Cliffs, NJ, (julio de 1973), 226–232
  • Prueba de un sistema multiprogramado, 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— Practice and Experience 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, en 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 concurrente 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, NJ, (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: Practice and Experience 8, 6 (noviembre-diciembre), 721-729
  • Discurso de apertura sobre programación concurrente, Discurso de apertura en la IEEE Computer Software & Applications Conference , Chicago, IL, noviembre de 1978, Computer 12, 5 (mayo de 1979), 50–56
  • El diseño de Edison, Software: Práctica y experiencia 11, 4 (abril de 1981), 363–396
  • Joyce—Un lenguaje de programación para sistemas distribuidos, Software—Práctica y Experiencia 17, 1 (enero de 1987), 29–50
  • El informe 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, en Natural and Artificial Parallel Computation , MA Arbib y JA Robinson, Eds. The MIT Press, Cambridge, MA, (1990), 31–46
  • La búsqueda lineal redescubierta, Structured Programming 11, (1990), 53–55
  • Reducción de ecuaciones lineales por parte de los propietarios de viviendas, ACM Computing Surveys 24, 2 (junio de 1992), 185–194
  • Monitores y Pascal concurrente: una historia personal, 2.ª Conferencia ACM sobre la historia de los lenguajes de programación , 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, Concurrency—Practice and Experience 5, 5 (agosto de 1993), 407–423
  • Autómatas celulares paralelos: un programa modelo para la ciencia computacional, Concurrency—Practice and Experience 5, 5 (agosto de 1993), 425–448
  • La división de longitudes múltiples revisitada: 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 estructurado en bloques, The Computer Journal 37, 5 (1994), 399–406
  • Recursión paralela eficiente, SIGPLAN Notices 30, 12 (diciembre de 1995), 9–16
  • The All-Pairs Pipeline, en Estudios en Ciencias Computacionales , Capítulo 4: The all-pairs pipeline. Prentice Hall, Englewood Cliffs, NJ, (marzo de 1995), 73–89
  • Balanceo de una tubería, en Estudios de Ciencias Computacionales , Capítulo 5: Balanceo de una tubería. Prentice Hall, Englewood Cliffs, NJ, (marzo de 1995), 90–100
  • El paralelismo inseguro de Java, SIGPLAN Notices 34, 4 (abril de 1999), 38–45
  • La evolución de los sistemas operativos, en Sistemas operativos clásicos: del procesamiento por lotes a los sistemas distribuidos , P. Brinch Hansen, Ed., Springer-Verlag, Nueva York (2001)
  • La invención de la programación concurrente, en El origen de la programación concurrente: de los semáforos a las llamadas a procedimientos remotos , P. Brinch Hansen, Ed., Springer-Verlag, Nueva York (2002)

Véase también

Referencias

  1. ^ abcdefghijklmnopqrstu v Brinch Hansen, Per (2004). La historia de un programador: la vida de un pionero de la informática.
  2. ^ abcde 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.
  3. ^ Buchholz, Werner (1962). Planificación de un sistema informático: proyecto Stretch (PDF) . Archivado desde el original (PDF) el 3 de abril de 2017. Consultado el 14 de diciembre de 2015 .
  4. ^ Dijkstra, Edsger (septiembre de 1965). "Procesos secuenciales cooperativos". Universidad Tecnológica de Eindhoven, Países Bajos .
  5. ^ 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. 
  6. ^ abcdef Brinch Hansen, Per (abril de 1993). "Monitores y Pascal concurrente: una historia personal" (PDF) . 2.ª Conferencia ACM sobre la historia de los lenguajes de programación .
  7. ^ ab Brinch Hansen, Per (1973). Principios de sistemas operativos . Prentice Hall. ISBN 978-0-13-637843-3.
  8. ^ Hartmann, Alfred C. (1977). Un compilador Pascal concurrente para minicomputadoras . Apuntes de clase en informática. Vol. 50. Heidelberg, Alemania: Springer-Verlag Lecture Notes in Computer Science. doi :10.1007/3-540-08240-9. ISBN 978-3-540-08240-8. Número de identificación del sujeto  2960929.
  9. ^ ab Brinch Hansen, Per (1977). La arquitectura de programas concurrentes . Prentice Hall. ISBN 978-0-13-044628-2.
  10. ^ "El título clásico de Doctor en Técnica (Dr.techn.) – DTU". Universidad Técnica de Dinamarca . Consultado el 14 de diciembre de 2015 .
  11. ^ 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. 
  12. ^ Brinch Hansen, Per (abril de 1981). "El diseño de Edison" (PDF) . Software: práctica y experiencia .
  13. ^ Lueck, Thomas J. (18 de octubre de 1985). «Mostek, Big Chip Maker, Shut». The New York Times . ISSN  0362-4331 . Consultado el 15 de diciembre de 2015 .
  14. ^ Brinch Hansen, Per (1982). Programación de una computadora personal . Prentice Hall. ISBN 978-0-13-730267-3.
  15. ^ abcdef "Por Brinch Hansen". Computer.org . Sociedad de Computación IEEE . Consultado el 14 de diciembre de 2015 .
  16. ^ Brinch Hansen, Per (1985). Brinch Hansen sobre los compiladores Pascal . Prentice Hall. ISBN 978-0-13-083098-2.
  17. ^ ab Brinch Hansen, Per (enero de 1987). "Joyce: un lenguaje de programación para sistemas distribuidos" (PDF) . Software: práctica y experiencia .
  18. ^ Brinch Hansen, Per (1995). Estudios en ciencia computacional: paradigmas de programación paralela . Prentice Hall. ISBN 978-0-13-439324-7.
  19. ^ ab Brinch Hansen, Per (agosto de 1994). "SuperPascal: un lenguaje de publicación para computación científica paralela" (PDF) . Concurrencia: práctica y experiencia .
  20. ^ abc Brinch Hansen, Per (1996). La búsqueda de la simplicidad . IEEE Computer Society Press. ISBN 978-0-81-867566-9.
  21. ^ Brinch Hansen, Per (1999). Programación para todos en Java . Springer-Verlag. ISBN 978-0-387-98683-8.
  22. ^ Brinch Hansen, Per (2001). Sistemas operativos clásicos: del procesamiento por lotes a los sistemas distribuidos . Springer-Verlag. ISBN 978-0-387-95113-3.
  23. ^ ab 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.
  24. ^ "LC Smith lamenta el fallecimiento del profesor Per Brinch Hansen". SU Engineering & Computer Science . Archivado desde el original el 22 de diciembre de 2015. Consultado el 14 de diciembre de 2015 .
  25. ^ abc Plauger, PJ (febrero de 1990). "Estado del arte". Programación de sistemas integrados .
  26. ^ Brinch Hansen, Per (abril de 1976). "Innovación y trivialidades en la ingeniería de programas (Editorial invitada)". Software: práctica y experiencia .
  27. ^ ab Patterson, David (marzo de 2006). "Reviviendo sus libros de informática favoritos". Comunicaciones de la ACM . 49 (3): 31. doi :10.1145/1118178.1118213. S2CID  1537883.
  28. ^ Brinch Hansen, Per (abril de 1976). "El sistema operativo Solo: un programa Pascal concurrente" (PDF) . Software: práctica y experiencia .
  29. ^ abc Maddux, R. y Mills, H. (mayo de 1979). "Revisión de la arquitectura de programas concurrentes". Computer . 12 (5): 102. doi :10.1109/mc.1979.1658762.
  30. ^ Brinch Hansen, Per (julio de 1972). "Multiprogramación estructurada (artículo invitado)". Comunicaciones de la ACM . 15 (7): 574–578. doi : 10.1145/361454.361473 . S2CID  14125530.
  31. ^ Hoare, CAR (octubre de 1974). "Monitores: un concepto de estructuración de sistemas operativos". Comunicaciones de la ACM . 17 (10): 549–557. CiteSeerX 10.1.1.24.6394 . doi :10.1145/355620.361161. S2CID  1005769. 
  32. ^ Hoare, CAR (1974). "Consejos sobre el diseño de lenguajes de programación". En Computer Systems Reliability, C. Bunyan, Ed. : 505–534.
  33. ^ Hoare, CAR (1976). "Consejos sobre el diseño de un lenguaje de programación para comando y control en tiempo real". En Real-time Software: International State of the Art Report, JP Spencer, Ed. : 685–699.
  34. ^ Brinch Hansen, Per (1969). Software informático RC 4000: Sistema de multiprogramación (PDF) . Copenhague, Dinamarca: Regnecentralen.
  35. ^ 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. 
  36. ^ Andrews, Greg (1991). Programación concurrente: principios y práctica . Redwood City, CA: Benjamin Cummings. ISBN 978-0-80-530086-4.
  37. ^ Brinch Hansen, Per (diciembre de 1995). "Recursividad paralela eficiente" (PDF) . Avisos SIGPLAN .
  • Sitio web oficial : memorias, artículos seleccionados, bibliografía detallada
  • Primeros artículos de Per Brinch Hansen (1966-1970) en el Museo de Datos de Dinamarca
Obtenido de "https://es.wikipedia.org/w/index.php?title=Per_Brinch_Hansen&oldid=1249700157"