Tudor Andrei Cristian Alexandrescu (born 1969) is a Romanian-American programmer and author specializing in the programming languages C++ and D. He is especially known for his pioneering work on policy-based design implemented via template metaprogramming. These ideas are articulated in his book Modern C++ Design and were first implemented in his programming library, Loki. He also implemented the move constructors concept in his library MOJO. He contributed to the C/C++ Users Journal under the byline "Generic<Programming>".

He became an American citizen in August 2014.

Education and career Alexandrescu received a Bachelor of Science (B.S.) degree in Electrical Engineering from Polytechnic University of Bucharest (Universitatea Politehnica din București) in July 1994.

In September 1998, his first article was published in the C/C++ Users Journal. From April 1999 until February 2000, he was a program manager for Netzip, Inc. When the company was acquired by RealNetworks, Inc., he served there as a development manager from February 2000 through September 2001.

In 2001, Alexandrescu released the book Modern C++ Design, reviewed as one of the five most important C++ books by C++ expert Scott Meyers.

In 2003, Alexandrescu earned a Master of Science (M.S.), and in 2009, a Doctor of Philosophy (Ph.D.) in computer science from the University of Washington.Computer Science & Engineering, Recent Ph.D. Graduates (Summer 2009). mark University of Washington.

In 2006, Alexandrescu began assisting Walter Bright in developing the D programming language. In May 2010, he released a book titled The D Programming Language.

From 2010 to 2014, Alexandrescu, Herb Sutter, and Scott Meyers ran a small annual technical conference named C++ and Beyond.

Alexandrescu worked as a research scientist at Facebook for over 5 years, before leaving the firm in August 2015 to focus on developing the D language.

In January 2022, Alexandrescu began working at Nvidia as a Principal Research Scientist.

Contributions

The D programming language Along with Walter Bright, Alexandrescu has been one of the two main designers of the D language, and the main maintainer of the standard library Phobos from 2007 to 2019. He is the founder of the D Language Foundation. His contributions include the module ranges. He is the author of The D Programming Language book.

Expected Expected is a template class for C++ which is on the C++ Standards track. Alexandrescu proposes Expected<T> as a class for use as a return value which contains either a T or the exception preventing its creation, which is an improvement over use of either return codes or exceptions exclusively. Expected can be thought of as a restriction of sum (union) types or algebraic data types in various languages, e.g., Hope, or the more recent Haskell and Gallina; or of the error handling mechanism of Google's Go, or the Result type in Rust.

He explains the benefits of Expected<T> as: Associates errors with computational goals Naturally allows multiple exceptions in flight Switch between "error handling" and "exception throwing" styles Teleportation possible across thread boundaries, across nothrow subsystem boundaries and across time (save now, throw later) Collect, group, combine exceptions

Example For example, instead of any of the following common function prototypes:

int parseInt(const string&); // Returns 0 on error and sets errno.

or

int parseInt(const string&); // Throws invalid_input or overflow

he proposes the following:

Expected<int> parseInt(const string&); // Returns an expected int: either an int or an exception

Scope guard From 2000 onwards, Alexandrescu has advocated and popularized the scope guard idiom. He has introduced it as a language construct in D. It has been implemented by others in many other languages.

Bibliography

References

External links

Older website – Has links to downloadable Loki libraries for various compilers Interviu MONEY.ro: Facebook face angajări în România, 1 March 2010