David Bacon es un programador informático estadounidense .
Carrera
Bacon comenzó a trabajar como programador a los 16 años y trabajó para una empresa emergente durante su último año de secundaria. En el Columbia College, Columbia University , trabajó primero con David E. Shaw en la supercomputadora NON-VON, [1] y luego en algoritmos de red y simulación con Yechiam Yemini, creando el Simulador de red NEST, [2] que sirvió como base para varios otros simuladores de red, incluido REAL de Cornell [3] y, a partir de ahí, el simulador ns de LBL .
Investigación de IBM
Bacon pasó gran parte de su carrera en el Centro de Investigación Thomas J. Watson de IBM , comenzando como programador en 1985 trabajando en el lenguaje de programación distribuida Hermes [4] , y eventualmente convirtiéndose en miembro principal del personal de investigación.
En 2009 se tomó un año sabático como profesor visitante de informática en Harvard . [5]
Gran parte de su trabajo en IBM se centró en la recolección de basura . En 2009 fue nombrado miembro de la ACM "por sus contribuciones a los sistemas de tiempo real y al diseño e implementación de lenguajes orientados a objetos". [6]
Su trabajo sobre el recolector de basura de rastreo en tiempo real Metronome [7] se convirtió en la base de la máquina virtual Java en tiempo real IBM WebSphere [8] , que se utilizó en el software del destructor DDG 1000 de la Armada. [9] La investigación original fue posteriormente seleccionada para el Premio al trabajo más influyente de 2013 del Simposio sobre principios de lenguajes de programación . [10]
Su trabajo sobre la recolección de basura de estructuras cíclicas [11] en sistemas de recuento de referencias se ha utilizado en varios lenguajes de programación, incluido PHP . [12]
En 2013 publicó el primer recolector de basura implementado completamente en hardware, [ aclaración necesaria ] [13] que fue seleccionado como una investigación destacada de ACM. [14] [15]
Además de la recolección de basura, su trabajo se ha centrado en la implementación de lenguajes concurrentes y orientados a objetos. Su trabajo de tesis sobre análisis rápido de tipos (RTA) [16] [17] se ha utilizado en muchos compiladores y marcos de análisis para construir gráficos de llamadas para lenguajes orientados a objetos, incluidos Soot [18] y Go . [19] En 2004, su trabajo sobre bloqueo de alto rendimiento para Java [20] apareció en la lista de los 50 artículos PLDI más influyentes de todos los tiempos. [21]
En 2014 se incorporó a Google , donde actualmente es ingeniero principal y trabaja en el sistema de base de datos distribuida Spanner . Es responsable del motor de base de datos de Spanner .
Referencias
- ^ Shaw, David Elliot (1982). La supercomputadora NON-VON, Informe técnico CUCS-029-82, Universidad de Columbia.
- ^ Dupuy, Alexander; Schwartz, Jed; Yemini, Yechiam; Bacon, David (1990). "NEST: un banco de pruebas de simulación y creación de prototipos de redes". Comunicaciones de la ACM . 33 (10): 63–74. doi : 10.1145/84537.84549 . ISSN 0001-0782. S2CID 5311305.
- ^ Keshav, S. Descripción general de REAL 5.0
- ^ Strom, Robert E.; Bacon, David F.; Goldberg, Arthur P.; Lowry, Andy; Yellin, Daniel M.; Yemini, Shaula (1991). Hermes: un lenguaje para computación distribuida . Englewood Cliffs, NJ, EE. UU.: Prentice-Hall. ISBN 978-0-13-389537-7.
- ^ Grupo de Economía y Ciencias de Harvard
- ^ Becarios de la ACM: David F. Bacon
- ^ Bacon, David F.; Cheng, Perry; Rajan, VT (2003). "Un recolector de basura en tiempo real con bajo consumo y utilización consistente". Actas del 30.º simposio ACM SIGPLAN-SIGACT sobre Principios de lenguajes de programación - POPL '03 . págs. 285–298. CiteSeerX 10.1.1.13.6486 . doi :10.1145/604131.604155. ISBN. 978-1581136289. Número de identificación del sujeto 52819687.
- ^ IBM WebSphere en tiempo real
- ^ IBM y Raytheon ofrecen una solución tecnológica para los destructores navales de próxima generación DDG 1000
- ^ Premio al artículo más influyente de POPL
- ^ Bacon, David F.; Rajan, VT (2001). "Recopilación de ciclos concurrentes en sistemas de recuento de referencia". ECOOP 2001 — Programación orientada a objetos . Apuntes de clase en informática. Vol. 2072. págs. 207–235. CiteSeerX 10.1.1.32.6283 . doi :10.1007/3-540-45337-7_12. ISBN . 978-3-540-42206-8. ISSN 0302-9743.
- ^ Manual de PHP - Recopilación de ciclos
- ^ Bacon, David F.; Cheng, Perry; Shukla, Sunil (2013). "Y no quedó ninguno: un recolector de basura en tiempo real sin bloqueos para hardware reconfigurable". Comunicaciones de la ACM . 56 (12): 101–109. doi :10.1145/2534706.2534726. ISSN 0001-0782. S2CID 52901561.
- ^ Moss, Eliot (2013). "La recolección de basura más limpia". Comunicaciones de la ACM . 56 (12): 100. doi :10.1145/2534706.2534725. ISSN 0001-0782. S2CID 9688334.
- ^ Aspectos destacados de la investigación del ACM SIGPLAN
- ^ Bacon, David F. (1997). Optimización rápida y efectiva de lenguajes orientados a objetos con tipado estático (PDF) (tesis doctoral). Universidad de California, Berkeley.
- ^ Bacon, David F.; Sweeney, Peter F. (1996). "Análisis estático rápido de llamadas a funciones virtuales de C++". ACM SIGPLAN Notices . 31 (10): 324–341. CiteSeerX 10.1.1.69.2267 . doi :10.1145/236338.236371. ISSN 0362-1340.
- ^ El marco Soot para el análisis de programas Java
- ^ Documentación de Go - paquete rta
- ^ Bacon, David F.; Konuru, Ravi; Murthy, Chet; Serrano, Mauricio (1998). "Cerraduras delgadas". Avisos SIGPLAN de la ACM . 33 (5): 258–268. doi : 10.1145/277652.277734 . ISSN 0362-1340. S2CID 16929488.
- ^ 20 años de PLDI (1979–1999): una selección, Kathryn S. McKinley, editora
Enlaces externos
- Perfil del autor en Google Scholar
- Lista de publicaciones sobre DBLP
- Lista de patentes