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]
Educación y carrera
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]
Contribuciones
El lenguaje de programación D
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".
Esperado
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>:
- Asocia errores con objetivos computacionales
- Naturalmente permite múltiples excepciones en vuelo.
- Cambiar entre los estilos de "manejo de errores" y "lanzamiento de excepciones"
- Es posible teletransportarse a través de los límites de los subprocesos, a través de los límites del subsistema nothrow y a través del tiempo (guardar ahora, lanzar después)
- Recopilar, agrupar y combinar excepciones
Ejemplo
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
Protector de alcance
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]
Bibliografía
- Andrei Alexandrescu (febrero de 2001). Diseño moderno en C++ : programación genérica y patrones de diseño aplicados . Addison-Wesley. ISBN 978-0-201-70431-0.
- Herb Sutter , Andrei Alexandrescu (noviembre de 2004). Estándares de codificación de C++: 101 reglas, pautas y mejores prácticas . Addison-Wesley. ISBN 978-0-321-11358-0.
- Andrei Alexandrescu (junio de 2010). El lenguaje de programación D. Addison-Wesley. ISBN 978-0-321-63536-5.
Referencias
- ^ "Erdani.com".
- ^ andralex (14 de agosto de 2014). "No". Reddit . Archivado desde el original el 16 de junio de 2022.
- ^ ab Metz, Cade (7 de julio de 2014). "El próximo gran lenguaje de programación del que nunca has oído hablar". Wired . Consultado el 27 de julio de 2014.
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.
- ^ "The D Language Foundation". dlang.org . Consultado el 5 de junio de 2024 .
- ^ Alexandrescu, Andrei (1 de febrero de 2003). "Move Constructors". Diario del Dr. Dobb . Archivado desde el original el 7 de mayo de 2009. Consultado el 25 de marzo de 2009 .
- ^ "Hace dieciséis años, a los 28, llegué a Nueva York con 300 dólares a mi nombre. Hoy me convertí en ciudadana estadounidense. Ha sido un viaje alocado que espero que continúe. : fotos". 14 de agosto de 2014.
- ^ ab "Andrei Alexandrescu: Resumen". Archivado desde el original el 7 de abril de 2011.
- ^ Conferencia de primavera de la ACCU de 2001 Archivado el 11 de agosto de 2011 en Wayback Machine.
- ^ "ACCU:: Oradores". members.accu.org .
- ^ "ACCU:: Oradores". members.accu.org .
- ^ Ciencias de la Computación e Ingeniería, Graduados Recientes de Doctorado (Verano de 2009).mark Universidad de Washington.
- ^ "Acerca de Andrei Alexandrescu, PhD".
- ^ "Avanzando con el trabajo sobre el lenguaje D y sus fundamentos". 25 de agosto de 2015. Consultado el 28 de agosto de 2015 .
- ^ "Andréi Alexandrescu". LinkedIn.com . Consultado el 15 de diciembre de 2023 .
- ^ [ Botet; Talbot. "Una propuesta para añadir una clase de utilidad para representar la mónada esperada" (PDF) . Archivado desde el original (PDF) el 19 de agosto de 2014.
- ^ "STD-make/P0323r2.md en master · viboes/STD-make". GitHub . 21 de octubre de 2021.
- ^ Alexandrescu. «Manejo sistemático de errores en C++». Archivado desde el original el 25 de abril de 2013.
- ^ Andrei Alexandrescu; Petru Marginean. "Genérico: cambie la forma en que escribe código seguro frente a excepciones, para siempre". Archivado desde el original el 1 de octubre de 2012.
- ^ "Seguridad de excepciones - Lenguaje de programación D".
- ^ "Scope::Guard - gestión de recursos con alcance léxico - metacpan.org". metacpan.org .
- ^ "Protector de alcance - Óxido".
Enlaces externos
- Página de inicio de Alexandrescu: contiene enlaces a bibliotecas Loki descargables para varios compiladores .
- (en rumano) Interviu MONEY.ro: Facebook face angajări în România , 1 de marzo de 2010