David F. Bacon

Last updated
David Francis Bacon
Born (1963-02-24) 24 February 1963 (age 61)
CitizenshipAmerican
Alma mater U.C. Berkeley
Awards ACM Fellow
Scientific career
Fields Computer science
Institutions IBM Watson Research Center
Harvard Computer Science Dept.
Google
Thesis Fast and Effective Optimization of Statically Typed Object-Oriented Languages  (1997)
Doctoral advisor Susan L. Graham

David Bacon is an American computer programmer.

Career

Bacon 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.

Contents

IBM Research

Bacon 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]

Google

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.

Related Research Articles

<span class="mw-page-title-main">Garbage collection (computer science)</span> Form of automatic memory management

In computer science, garbage collection (GC) is a form of automatic memory management. The garbage collector attempts to reclaim memory that was allocated by the program, but is no longer referenced; such memory is called garbage. Garbage collection was invented by American computer scientist John McCarthy around 1959 to simplify manual memory management in Lisp.

In computer science, reference counting is a programming technique of storing the number of references, pointers, or handles to a resource, such as an object, a block of memory, disk space, and others.

In computing, a virtual machine (VM) is the virtualization or emulation of a computer system. Virtual machines are based on computer architectures and provide the functionality of a physical computer. Their implementations may involve specialized hardware, software, or a combination of the two. Virtual machines differ and are organized by their function, shown here:

SIGPLAN is the Association for Computing Machinery's Special Interest Group on programming languages.

Henry Givens Baker Jr. is an American computer scientist who has made contributions in garbage collection, functional programming languages, and linear logic. He was one of the founders of Symbolics, a company that designed and manufactured a line of Lisp machines. In 2006 he was recognized as a Distinguished Scientist by the Association for Computing Machinery.

In software engineering, profiling is a form of dynamic program analysis that measures, for example, the space (memory) or time complexity of a program, the usage of particular instructions, or the frequency and duration of function calls. Most commonly, profiling information serves to aid program optimization, and more specifically, performance engineering.

<span class="mw-page-title-main">Robert Harper (computer scientist)</span> Computer scientist

Robert William "Bob" Harper, Jr. is a computer science professor at Carnegie Mellon University who works in programming language research. Prior to his position at Carnegie Mellon, Harper was a research fellow at the University of Edinburgh.

The annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL) is an academic conference in the field of computer science, with focus on fundamental principles in the design, definition, analysis, and implementation of programming languages, programming systems, and programming interfaces. The venue is jointly sponsored by two Special Interest Groups of the Association for Computing Machinery: SIGPLAN and SIGACT.

In computer science, pointer analysis, or points-to analysis, is a static code analysis technique that establishes which pointers, or heap references, can point to which variables, or storage locations. It is often a component of more complex analyses such as escape analysis. A closely related technique is shape analysis.

In proof theory, the Geometry of Interaction (GoI) was introduced by Jean-Yves Girard shortly after his work on linear logic. In linear logic, proofs can be seen as various kinds of networks as opposed to the flat tree structures of sequent calculus. To distinguish the real proof nets from all the possible networks, Girard devised a criterion involving trips in the network. Trips can in fact be seen as some kind of operator acting on the proof. Drawing from this observation, Girard described directly this operator from the proof and has given a formula, the so-called execution formula, encoding the process of cut elimination at the level of operators.

In computer science, capability-based addressing is a scheme used by some computers to control access to memory as an efficient implementation of capability-based security. Under a capability-based addressing scheme, pointers are replaced by protected objects which specify both a location in memory, along with access rights which define the set of operations which can be carried out on the memory location. Capabilities can only be created or modified through the use of privileged instructions which may be executed only by either the kernel or some other privileged process authorised to do so. Thus, a kernel can limit application code and other subsystems access to the minimum necessary portions of memory, without the need to use separate address spaces and therefore require a context switch when an access occurs.

Matthew Flatt is an American computer scientist and professor at the University of Utah School of Computing in Salt Lake City. He is also the leader of the core development team for the Racket programming language.

Hermes is a language for distributed programming that was developed at IBM's Thomas J. Watson Research Center from 1986 through 1992, with an open-source compiler and run-time system. Hermes' primary features included:

In type theory, a refinement type is a type endowed with a predicate which is assumed to hold for any element of the refined type. Refinement types can express preconditions when used as function arguments or postconditions when used as return types: for instance, the type of a function which accepts natural numbers and returns natural numbers greater than 5 may be written as . Refinement types are thus related to behavioral subtyping.

In computer science, region-based memory management is a type of memory management in which each allocated object is assigned to a region. A region, also called a zone, arena, area, or memory context, is a collection of allocated objects that can be efficiently reallocated or deallocated all at once. Memory allocators using region-based managements are often called area allocators, and when they work by only "bumping" a single pointer, as bump allocators.

<span class="mw-page-title-main">Kathryn S. McKinley</span> American computer scientist

Kathryn S. McKinley is an American computer scientist noted for her research on compilers, runtime systems, and computer architecture. She is also known for her leadership in broadening participation in computing. McKinley was co-chair of CRA-W from 2011 to 2014.

Trellis/Owl, or simply Owl, is a defunct object-oriented programming language created by Digital Equipment Corporation. It was part of a programming environment, Trellis. It ran on the OpenVMS operating system.

<span class="mw-page-title-main">David A. Moon</span> American computer scientist

David A. Moon is a programmer and computer scientist, known for his work on the Lisp programming language, as co-author of the Emacs text editor, as the inventor of ephemeral garbage collection, and as one of the designers of the Dylan programming language. Guy L. Steele Jr. and Richard P. Gabriel (1993) name him as a leader of the Common Lisp movement and describe him as "a seductively powerful thinker, quiet and often insulting, whose arguments are almost impossible to refute".

Ilya Sergey is a Russian computer scientist and an Associate Professor at the School of Computing at the National University of Singapore, where he leads the Verified Systems Engineering lab. Sergey does research in programming language design and implementation, software verification, distributed systems, program synthesis, and program repair. He is known for designing the Scilla programming language for smart contracts. He is the author of the free online book Programs and Proofs: Mechanizing Mathematics with Dependent Types, Lecture notes with exercises, which introduce the basic concepts of mechanized reasoning and interactive theorem proving using Coq.

References

  1. Shaw, David Elliot (1982). The NON-VON Supercomputer, Technical Report CUCS-029-82, Columbia University.
  2. 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.
  3. Keshav, S. REAL 5.0 Overview
  4. 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.
  5. Harvard EconCS Group
  6. ACM Fellows - David F. Bacon
  7. 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.
  8. IBM WebSphere Real Time
  9. IBM and Raytheon Deliver Technology Solution for DDG 1000 Next Generation Navy Destroyers
  10. Most Influential POPL Paper Award
  11. 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.
  12. PHP Manual - Collecting Cycles
  13. 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.
  14. Moss, Eliot (2013). "The cleanest garbage collection". Communications of the ACM. 56 (12): 100. doi:10.1145/2534706.2534725. ISSN   0001-0782. S2CID   9688334.
  15. ACM SIGPLAN Research Highlights
  16. Bacon, David F. (1997). Fast and Effective Optimization of Statically Typed Object-Oriented Languages (PDF) (Ph.D. thesis). University of California, Berkeley.
  17. 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.
  18. The Soot framework for Java program analysis
  19. Go Documentation - package rta
  20. 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.
  21. 20 Years of PLDI (1979–1999): A Selection, Kathryn S. McKinley, Editor