". ">
Tudor Andrei Cristian Alexandrescu [4] (nacido en 1969) es un programador y autor rumano-estadounidense de lenguaje C++ y D [3] . Es particularmente conocido por su trabajo pionero en diseño basado en políticas implementado a través de 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 movimiento " en su biblioteca MOJO. [5] Contribuyó al C/C++ Users Journal bajo el seudónimo "Generic<Programming>".
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 fue publicado en el C/C++ Users Journal en septiembre de 1998. Fue gerente de programas de Netzip, Inc. desde abril de 1999 hasta febrero de 2000. Cuando la empresa fue adquirida por RealNetworks, Inc. , trabajó allí como gerente de desarrollo desde febrero de 2000 hasta septiembre de 2001. [7]
Alexandrescu obtuvo una maestría (2003) y un doctorado (2009) en ciencias de la computación 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 científico investigador en Facebook durante más de 5 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]
Junto con Walter Bright , Andrei ha sido uno de los dos principales diseñadores del lenguaje de programación D y el principal mantenedor de la biblioteca estándar Phobos desde 2007 hasta 2019. Es el fundador de la D Language Foundation. Entre sus contribuciones se incluye el módulo ranges. Es el autor del libro "The D Programmming Language".
Expected es una clase de plantilla para C++ que está en la vía de los estándares de C++. [15] [16] Alexandrescu propone [17] Expected<T>
como una clase para usar como un valor de retorno que contiene una T o la excepción que impide su creación, lo que es una mejora sobre el uso de códigos de retorno o excepciones exclusivamente. Expected puede considerarse como una restricción de los tipos de suma (unión) o tipos de datos algebraicos en varios lenguajes, por ejemplo, Hope , o los más recientes Haskell y Gallina ; o del mecanismo de manejo de errores de Go de Google , o el tipo Result en Rust .
Explica los beneficios de Expected<T>
:
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 el año 2000 [18] en adelante, Alexandrescu ha defendido y popularizado el modismo de protección de alcance. Lo ha introducido como una construcción del lenguaje en D. [19] Otros lo han implementado en muchos otros lenguajes. [20] [21]
Hoy, Alexandrescu es un científico investigador en Facebook, donde él y un equipo de programadores están usando
D
para rediseñar pequeñas partes de la enorme operación de la empresa.