PhotosBiographyFacebookTwitter

From Wikipedia, the free encyclopedia

Andrei Alexandrescu
Alexandrescu at ACCU 2009
Born1969 (age 54–55)
Nationality Romanian, American [2]
Education Politehnica University of Bucharest and University of Washington
OccupationDeveloper of the D programming language
Known forExpert on C++ and D programming [3]
SpouseSanda Alexandrescu
Website erdani.org

Andrei Alexandrescu (born 1969) is a Romanian-American C++ and D language [3] programmer and author. He is particularly 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 MOJO library. [4] He contributed to the C/C++ Users Journal under the byline "Generic<Programming>".

He became an American citizen in August 2014. [5]

Education and career

Alexandrescu received a B.S. degree in Electrical Engineering from Polytechnic University of Bucharest (Universitatea Politehnica din București) in July 1994. [6] [7]

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

Alexandrescu earned a M.S. (2003) and a PhD (2009) in computer science from the University of Washington. [8] [9] [10]

In 2006 Alexandrescu began assisting Walter Bright on the development of the D programming language. [11] He released a book titled The D Programming Language in May 2010.

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

Alexandrescu worked as a research scientist at Facebook for over 5 years, before departing the company in August 2015 in order to focus on developing the D programming language. [12]

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

Contributions

Expected

Expected is a template class for C++ which is on the C++ Standards track. [14] [15] Alexandrescu proposes [16] 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 datatypes 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 [17] onwards, Alexandrescu has advocated and popularized the scope guard idiom. He has introduced it as a language construct in D. [18] It has been implemented by others in many other languages. [19] [20]

Bibliography

  • Andrei Alexandrescu (February 2001). Modern C++ Design: Generic Programming and Design Patterns Applied. Addison-Wesley. ISBN  978-0-201-70431-0.
  • Herb Sutter, Andrei Alexandrescu (November 2004). C++ Coding Standards: 101 Rules, Guidelines, and Best Practices. Addison-Wesley. ISBN  978-0-321-11358-0.
  • Andrei Alexandrescu (June 2010). The D Programming Language. Addison-Wesley. ISBN  978-0-321-63536-5.

References

  1. ^ "Erdani.com".
  2. ^ andralex (14 August 2014). "No". Reddit. Archived from the original on 16 June 2022.
  3. ^ a b Metz, Cade (7 July 2014). "The Next Big Programming Language You've Never Heard Of". Wired. Retrieved 27 July 2014. Today, Alexandrescu is a research scientist at Facebook, where he and a team of coders are using D to refashion small parts of the company's massive operation.
  4. ^ Alexandrescu, Andrei (1 February 2003). "Move Constructors". Dr. Dobb's Journal. Archived from the original on 7 May 2009. Retrieved 25 March 2009.
  5. ^ "Sixteen years ago, at 28, I landed in New York with $300 to my name. Today I became a US citizen. It's been a wild ride that I hope will go on! : pics". 14 August 2014.
  6. ^ a b "Andrei Alexandrescu: Resumé". Archived from the original on 7 April 2011.
  7. ^ ACCU Spring Conference 2001 Archived 11 August 2011 at the Wayback Machine
  8. ^ "ACCU :: Speakers". members.accu.org.
  9. ^ "ACCU :: Speakers". members.accu.org.
  10. ^ Computer Science & Engineering, Recent Ph.D. Graduates (Summer 2009).mark University of Washington.
  11. ^ "About Andrei Alexandrescu, PhD".
  12. ^ "Moving forward with work on the D language and foundation". 25 August 2015. Retrieved 28 August 2015.
  13. ^ "Andrei Alexandrescu". LinkedIn.com. Retrieved 15 December 2023.
  14. ^ Botet; Talbot. "A proposal to add a utility class to represent expected monad" (PDF). Archived from the original (PDF) on 19 August 2014.
  15. ^ "STD-make/P0323r2.md at master · viboes/STD-make". GitHub. 21 October 2021.
  16. ^ Alexandrescu. "Systematic Error Handling in C++". Archived from the original on 25 April 2013.
  17. ^ Andrei Alexandrescu; Petru Marginean. "Generic: Change the Way You Write Exception-Safe Code – Forever". Archived from the original on 1 October 2012.
  18. ^ "Exception Safety - D Programming Language".
  19. ^ "Scope::Guard - lexically-scoped resource management - metacpan.org". metacpan.org.
  20. ^ "Scopeguard - Rust".

External links