Fergus Henderson

Fergus Henderson has been a software engineer at Google since 2006. He started programming as a kid in 1979, and went on to academic research in programming language design and implementation. With his PhD supervisor, he co-founded a research group at the University of Melbourne that developed the programming language Mercury. He has been a program committee member for eight international conferences, and has released over 500,000 lines of open-source code. He was a former moderator of the Usenet newsgroup comp.std.c++ and was an officially accredited “Technical Expert” for the ISO C and C++ committees. He also has over 15 years of commercial software industry experience, starting with his first full-time industry job, as a COBOL programmer (for Australian company Frontier Software) at the age of 16. He spent 2.5 years working at Galois, Inc., in Portland, Oregon, where he developed a compiler from Cryptol (a domain-specific functional programming language for cryptography) to FPGA hardware. At Google, he was one of the original developers of Blaze, a build tool now used across Google, and worked on the server-side software behind speech recognition and voice actions (before Siri!) and speech synthesis. He currently manages Google's text-to-speech engineering team, but still writes and reviews plenty of code. Software that he has written is installed on over a billion devices.

Google Publications

Previous Publications

  •   

    Accurate garbage collection in an uncooperative environment

    Fergus Henderson

    International Symposium on Memory Management (2002), pp. 256-263

  •   

    Compiling Mercury to High-Level C Code

    Fergus Henderson, Zoltan Somogyi

    Compiler Construction, 11th International Conference, CC 2002, Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2002, Grenoble, France, April 8-12, Springer, pp. 197-212

  •   

    Compiling Mercury to the .NET Common Language Runtime

    Tyson Dowd, Fergus Henderson, Peter Ross

    BABEL'01: First International Workshop on Multi-Language Infrastructure and Interoperability, Firenze, Italy, 8 September 2001

  •   

    Type Classes in Mercury

    David Jeffery, Fergus Henderson, Zoltan Somogyi

    Australian Computer Science Conference (2000), pp. 128-135

  •   

    Using impurity to create declarative interfaces in Mercury

    Tyson Dowd, Peter Schachte, Fergus Henderson, Zoltan Somogyi

    Department of Computer Science, University of Melbourne, Melbourne, Australia

  •   

    A Semantics for Imprecise Exceptions

    Simon L. Peyton Jones, Alastair Reid, Fergus Henderson, C. A. R. Hoare, Simon Marlow

    Programming Language Design and Implementation (1999), pp. 25-36

  •   

    Run Time Type Information in Mercury

    Tyson Dowd, Zoltan Somogyi, Fergus Henderson, Thomas Conway, David Jeffery

    International Conference on Principles and Practice of Declarative Programming (1999), pp. 224-243

  •   

    The Implementation Technology of the Mercury Debugger

    Zoltan Somogyi, Fergus Henderson

    Proceedings of the 1999 International Conference on Logic Programming

  •  

    Database Transactions in a Purely Declarative Logic Programming Language

    David B. Kemp, Thomas Conway, Evan P. Harris, Fergus Henderson, Kotagiri Ramamohanarao, Zoltan Somogyi

    DASFAA (1997), pp. 283-292

  •   

    Determinism analysis in the Mercury Compiler

    Fergus Henderson, Zoltan Somogyi, Thomas Conway

    Australian Computer Science Conference (1996), pp. 337-346

  •   

    Status of the Mercury system

    Zoltan Somogyi, Fergus Henderson, Thomas Conway

    Proceedings of the JICSLP '96 Workshop on Parallelism and Implementation Technology for (Constraint) Logic Programming Languages, Bonn, Germany (1996), pp. 207-218

  •   

    The Execution Algorithm of Mercury, an Efficient Purely Declarative Logic Programming Language

    Zoltan Somogyi, Fergus Henderson, Thomas Conway

    Journal of Logic Programming, vol. 29 (1996), pp. 17-64

  •   

    Code Generation for Mercury

    Thomas Conway, Fergus Henderson, Zoltan Somogyi

    International Logic Programming Symposium (1995), pp. 242-256

  •   

    Logic programming for the real world!

    Zoltan Somogyi, Fergus Henderson, Thomas Conway, Richard O'Keefe

    Proceedings of the ILPS '95 Postconference Workshop on Visions for the Future of Logic Programming (1995)

  •   

    The Implementation of Mercury, an Efficient Purely Declarative Logic Programming Language

    Zoltan Somogyi, Fergus Henderson, Thomas Conway

    ILPS Workshop: Implementation Techniques for Logic Programming Languages (1994)

  •   

    Strong modes can change the world!

    Fergus Henderson

    Department of Computer Science, University of Melbourne (1992)