Doug's Compiler Corner


Hello, my name is Doug Gregor. I've been working in the areas of programming languages and compilers professionally for nearly two decades.

I currently work on the Swift programming language, it's compiler and related tools. I've authored a number of Swift evolution proposals to guide changes to the language across many of the main aspects of the language, from generics to concurrency to macros and beyond. I was a founding member of the Swift Core Team and am an active member on the Language Steering Group that guides the language.

Prior to Swift, I spent a lot of time working on C++. I implemented major portions of the Clang compiler and was code owner of it during the early years as it grew from a bare C parser to an industrial-strength, ubiquitous C++ compiler. As a member of the ISO C++ committee, I designed variadic templates and std::function and was involved in a number of C++11 features, including rvalue references, noexcept, lambdas, auto, and the ill-fated "C++0x concepts" effort. I've been active in Boost and contributed support for various C++11 features into GCC. I co-authored the second addition of C++ Templates: The Complete Guide.

One common thread throughout is my love of generic programming, which focuses on expressing code in a manner that is sufficiently abstract to be maximally reusable while retaining the efficiency needed to be practical for large-scale use. I've worked on generic libraries and language features for generic programming to try to find the right way to express generic programming that is both approachable and widely applicable.

This site is statically generated using a lightly modified version of John Sundell's Publish framework with the default theme.

There are a number of ways to reach me: