". ">
Tudor Andrei Cristian Alexandrescu [4] (nacido en 1969) es un programador y autor rumano-estadounidense en lenguaje C++ y D [3] . Es particularmente conocido por su trabajo pionero en el diseño basado en políticas implementado mediante metaprogramación de plantillas . Estas ideas se articulan en su libro Modern C++ Design y se implementaron por primera vez en su biblioteca de programación, Loki . También implementó el concepto de " constructores de movimientos " en su biblioteca MOJO. [5] Contribuyó al C/C++ Users Journal bajo el título "Generic<Programación>".
Se convirtió en ciudadano estadounidense en agosto de 2014. [6]
Alexandrescu recibió una licenciatura en Ingeniería Eléctrica de la Universidad Politécnica de Bucarest ( Universitatea Politehnica din București ) en julio de 1994. [7] [8]
Su primer artículo se publicó en C/C++ Users Journal en septiembre de 1998. Fue director de programas de Netzip, Inc. desde abril de 1999 hasta febrero de 2000. Cuando la empresa fue adquirida por RealNetworks, Inc. , trabajó allí como desarrollador gerente desde febrero de 2000 hasta septiembre de 2001. [7]
Alexandrescu obtuvo una maestría (2003) y un doctorado (2009) en informática de la Universidad de Washington . [9] [10] [11]
En 2006, Alexandrescu comenzó a ayudar a Walter Bright en el desarrollo del lenguaje de programación D. [12] Publicó un libro titulado The D Programming Language en mayo de 2010.
De 2010 a 2014, Alexandrescu, Herb Sutter y Scott Meyers organizaron una pequeña conferencia técnica anual llamada C++ and Beyond .
Alexandrescu trabajó como investigador científico en Facebook durante más de cinco años, antes de dejar la empresa en agosto de 2015 para centrarse en el desarrollo del lenguaje de programación D. [13]
En enero de 2022, Alexandrescu comenzó a trabajar en Nvidia como investigador científico principal. [14]
Se espera una clase de plantilla para C++ que se encuentra en la ruta de Estándares de C++. [15] [16] Alexandrescu propone [17] Expected<T>
como una clase para usar como valor de retorno que contiene una T o la excepción que impide su creación, lo cual es una mejora con respecto al uso exclusivo de códigos de retorno o excepciones. Se puede considerar lo esperado como una restricción de tipos de suma (unión) o tipos de datos algebraicos en varios lenguajes, por ejemplo, Hope o el más reciente Haskell y Gallina ; o del mecanismo de manejo de errores de Go de Google , o del tipo de Resultado en Rust .
Explica los beneficios de Expected<T>
como:
Por ejemplo, en lugar de cualquiera de los siguientes prototipos de funciones comunes:
int parseInt(const string&); // Returns 0 on error and sets errno.
o
int parseInt(const string&); // Throws invalid_input or overflow
propone lo siguiente:
Expected<int> parseInt(const string&); // Returns an expected int: either an int or an exception
Desde 2000 [18] en adelante, Alexandrescu ha defendido y popularizado el lenguaje de guardia de alcance. Lo introdujo como una construcción del lenguaje en D. [19] Ha sido implementado por otros en muchos otros lenguajes. [20] [21]
Hoy en día, Alexandrescu es científico investigador en Facebook, donde él y un equipo de codificadores están utilizando
D
para remodelar pequeñas partes de las operaciones masivas de la empresa.