A major contributor to this article appears to have a close connection with its subject. (January 2017) |
David Bacon is an American computer programmer.
David Francis Bacon | |
---|---|
Born | 24 February 1963 |
Citizenship | American |
Alma mater | U.C. Berkeley |
Awards | ACM Fellow |
Scientific career | |
Fields | Computer science |
Institutions | IBM Watson Research Center Harvard Computer Science Dept. |
Thesis | Fast and Effective Optimization of Statically Typed Object-Oriented Languages (1997) |
Doctoral advisor | Susan L. Graham |
Career
editBacon began working as a programmer at age 16 and worked for a startup during his senior year of high school. At Columbia College, Columbia University, he worked first with David E. Shaw on the NON-VON supercomputer,[1] and then on network algorithms and simulation with Yechiam Yemini, creating the NEST Network Simulator,[2] which served as the basis for a number of other network simulators including Cornell's REAL[3] and thence LBL's ns simulator.
IBM Research
editBacon spent a large portion of his career at IBM's Thomas J. Watson Research Center, starting as a programmer in 1985 working on the Hermes distributed programming language,[4] and eventually becoming a Principal Research Staff Member.
He took a sabbatical in 2009 as a visiting professor of computer science at Harvard.[5]
Much of his work at IBM focused on garbage collection. In 2009 he was inducted as an ACM Fellow "for contributions to real-time systems and to object-oriented language design and implementation".[6]
His work on the Metronome[7] hard real-time tracing garbage collector became the basis for the IBM WebSphere Real Time Java virtual machine,[8] which was used in the software for the Navy's DDG 1000 Destroyer.[9] The original research was subsequently selected for the 2013 Most Influential Paper Award of the Symposium on Principles of Programming Languages.[10]
His work on garbage collecting cyclic structures[11] in reference counted systems has been used in a number of scripting languages, including PHP.[12]
In 2013 he published the first garbage collector implemented completely in hardware,[clarification needed][13] which was selected as an ACM Research Highlight.[14][15]
In addition to garbage collection, his work has focused on the implementation of concurrent and object-oriented languages. His thesis work on Rapid Type Analysis (RTA)[16] [17] has been used in many compilers and analysis frameworks to construct call graphs for object-oriented languages, including Soot[18] and Go.[19] In 2004, his work on high-performance locking for Java[20] appeared on the list of the 50 most influential PLDI papers of all time.[21]
In 2014 he joined Google, where he is now a Principal Engineer, working on the Spanner distributed database system. He is responsible for Spanner's Database engine.
References
edit- ^ Shaw, David Elliot (1982). The NON-VON Supercomputer, Technical Report CUCS-029-82, Columbia University.
- ^ Dupuy, Alexander; Schwartz, Jed; Yemini, Yechiam; Bacon, David (1990). "NEST: a network simulation and prototyping testbed". Communications of the ACM. 33 (10): 63–74. doi:10.1145/84537.84549. ISSN 0001-0782. S2CID 5311305.
- ^ Keshav, S. REAL 5.0 Overview
- ^ Strom, Robert E.; Bacon, David F.; Goldberg, Arthur P.; Lowry, Andy; Yellin, Daniel M.; Yemini, Shaula (1991). Hermes - A Language for Distributed Computing. Englewood Cliffs, NJ, USA: Prentice-Hall. ISBN 978-0-13-389537-7.
- ^ Harvard EconCS Group
- ^ ACM Fellows - David F. Bacon
- ^ Bacon, David F.; Cheng, Perry; Rajan, V. T. (2003). "A real-time garbage collector with low overhead and consistent utilization". Proceedings of the 30th ACM SIGPLAN-SIGACT symposium on Principles of programming languages - POPL '03. pp. 285–298. CiteSeerX 10.1.1.13.6486. doi:10.1145/604131.604155. ISBN 978-1581136289. S2CID 52819687.
- ^ IBM WebSphere Real Time
- ^ IBM and Raytheon Deliver Technology Solution for DDG 1000 Next Generation Navy Destroyers
- ^ Most Influential POPL Paper Award
- ^ Bacon, David F.; Rajan, V. T. (2001). "Concurrent Cycle Collection in Reference Counted Systems". ECOOP 2001 — Object-Oriented Programming. Lecture Notes in Computer Science. Vol. 2072. pp. 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.
- ^ PHP Manual - Collecting Cycles
- ^ Bacon, David F.; Cheng, Perry; Shukla, Sunil (2013). "And Then There Were None: A Stall-Free Real-Time Garbage Collector for Reconfigurable Hardware". Communications of the ACM. 56 (12): 101–109. doi:10.1145/2534706.2534726. ISSN 0001-0782. S2CID 52901561.
- ^ Moss, Eliot (2013). "The cleanest garbage collection". Communications of the ACM. 56 (12): 100. doi:10.1145/2534706.2534725. ISSN 0001-0782. S2CID 9688334.
- ^ ACM SIGPLAN Research Highlights
- ^ Bacon, David F. (1997). Fast and Effective Optimization of Statically Typed Object-Oriented Languages (PDF) (Ph.D. thesis). University of California, Berkeley.
- ^ Bacon, David F.; Sweeney, Peter F. (1996). "Fast static analysis of C++ virtual function calls". ACM SIGPLAN Notices. 31 (10): 324–341. CiteSeerX 10.1.1.69.2267. doi:10.1145/236338.236371. ISSN 0362-1340.
- ^ The Soot framework for Java program analysis
- ^ Go Documentation - package rta
- ^ Bacon, David F.; Konuru, Ravi; Murthy, Chet; Serrano, Mauricio (1998). "Thin locks". ACM SIGPLAN Notices. 33 (5): 258–268. doi:10.1145/277652.277734. ISSN 0362-1340. S2CID 16929488.
- ^ 20 Years of PLDI (1979–1999): A Selection, Kathryn S. McKinley, Editor