Andrei Alexandrescu

From Infogalactic: the planetary knowledge core
Jump to: navigation, search
Andrei Alexandrescu
AndreiAlexandrescu.jpg
Alexandrescu at ACCU 2009
Born 1969 (age 48–49)
Bucharest,[1] Romania
Nationality Romanian, American [2]
Education Politehnica University of Bucharest and University of Washington
Occupation Developer of the D programming language
Known for Expert on C++ and D programming[3]
Spouse(s) Sanda 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>". Alexandrescu worked as a research scientist at Facebook, before departing the company in August 2015 in order to focus on developing the D programming language.[5]

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

He is a developer of the D programming language.

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.[7][8]

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.[7]

Alexandrescu earned an M.S. (2003) and a Ph.D. (2009) in computer science from the University of Washington.[9][10][11]

More recently, he has been assisting Walter Bright in the development of the D programming language. Alexandrescu released a book titled The D Programming Language in May 2010.

Alexandrescu, Herb Sutter, and Scott Meyers run C++ and Beyond, a small annual technical conference.

Bibliography

  • Andrei Alexandrescu (February 2001). Modern C++ Design: Generic Programming and Design Patterns Applied. Addison-Wesley. ISBN 978-0-201-70431-0.<templatestyles src="Module:Citation/CS1/styles.css"></templatestyles>
  • Herb Sutter, Andrei Alexandrescu (November 2004). C++ Coding Standards: 101 Rules, Guidelines, and Best Practices. Addison-Wesley. ISBN 978-0-321-11358-0.<templatestyles src="Module:Citation/CS1/styles.css"></templatestyles>
  • Andrei Alexandrescu (June 2010). The D Programming Language. Addison-Wesley. ISBN 978-0-321-63536-5.<templatestyles src="Module:Citation/CS1/styles.css"></templatestyles>

Contributions

Expected is a template class for C++ which has been proposed for inclusion in Boost.[12] Alexandrescu proposes [13] 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.

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

References

  1. Erdani.com
  2. http://www.reddit.com/r/pics/comments/2di6ik/sixteen_years_ago_at_28_i_landed_in_new_york_with/cjpvhon
  3. 3.0 3.1 Metz, Cade (7 July 2014). "The Next Big Programming Language You've Never Heard Of". Wired.com. 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.<templatestyles src="Module:Citation/CS1/styles.css"></templatestyles>
  4. Alexandrescu, Andrei (1 February 2003). "Move Constructors". Dr. Dobbs Journal. Archived from the original on 7 May 2009. Retrieved 25 March 2009.<templatestyles src="Module:Citation/CS1/styles.css"></templatestyles>
  5. "Moving forward with work on the D language and foundation". 25 August 2015. Retrieved 28 August 2015.<templatestyles src="Module:Citation/CS1/styles.css"></templatestyles>
  6. Reddit.com: "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!"
  7. 7.0 7.1 Andrei Alexandrescu: Resumé
  8. ACCU Spring Conference 2001
  9. ACCU 2008: Speakers
  10. ACCU 2010: Speakers
  11. Computer Science & Engineering, Recent Ph.D. Graduates (Summer 2009). University of Washington.
  12. Botet; Talbot. "A proposal to add a utility class to represent expected monad" (PDF).<templatestyles src="Module:Citation/CS1/styles.css"></templatestyles>
  13. Alexandrescu. "Systematic Error Handling in C++".<templatestyles src="Module:Citation/CS1/styles.css"></templatestyles>

External links