Andrei Alexandrescu (nacido en 1969) es un programador y autor rumano-estadounidense de lenguajes C ++ y D [3] . Es particularmente conocido por su trabajo pionero en el diseño basado en políticas implementado a través de la 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 " mover constructores " en su biblioteca MOJO. [4] Contribuyó al C / C ++ Users Journal bajo la firma"
Andrei Alexandrescu | |
---|---|
Nació | 1969 (51 a 52 años de edad) |
Nacionalidad | Rumano , estadounidense [2] |
Educación | Universidad Politécnica de Bucarest y Universidad de Washington |
Ocupación | Desarrollador del lenguaje de programación D |
Conocido por | Experto en programación C ++ y D [3] |
Esposos) | Sanda Alexandrescu |
Sitio web | erdani |
Se convirtió en ciudadano estadounidense en agosto de 2014 [6].
Educación y carrera
Alexandrescu recibió un BS grado en Ingeniería Eléctrica de la Universidad Politécnica de Bucarest ( Universitatea Politehnica din Bucuresti ) 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 compañía fue adquirida por RealNetworks, Inc. , se desempeñó 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]
Más recientemente, ha estado ayudando a Walter brillante en el desarrollo del lenguaje de programación D . Alexandrescu 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 .
Contribuciones
Esperado
Se espera es una clase de plantilla para C ++ que se encuentra en la pista de Estándares de C ++. [12] [13] Alexandrescu propone [14] Expected
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 de códigos de retorno o excepciones exclusivamente. Se puede pensar en el esperado como una restricción de tipos de suma (unión) o tipos de datos algebraicos en varios idiomas, 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 de resultado en Rust .
Explica los beneficios de Expected
como:
- 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 la teletransportación a través de los límites del hilo, a través de los límites del subsistema y a lo largo del tiempo (guardar ahora, lanzar más tarde)
- Recopilar, agrupar, 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
Protector de alcance
A partir de 2000 [15] en adelante, Alexandrescu ha defendido y popularizado el idioma del protector de alcance. Lo ha introducido como una construcción de lenguaje en D. [16] Ha sido implementado por otros en muchos otros lenguajes. [17] [18]
Bibliografía
- Andrei Alexandrescu (febrero de 2001). Diseño C ++ moderno : 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 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
- ^ https://www.reddit.com/r/pics/comments/2di6ik/sixteen_years_ago_at_28_i_landed_in_new_york_with/cjpvhon
- ^ a b Metz, Cade (7 de julio de 2014). "El próximo gran lenguaje de programación del que nunca ha oído hablar" . Wired.com . Cableado . Consultado el 27 de julio de 2014 .
Hoy, Alexandrescu es un científico investigador en Facebook, donde él y un equipo de codificadores están usando D para remodelar pequeñas partes de la operación masiva de la compañía.
- ^ Alexandrescu, Andrei (1 de febrero de 2003). "Mover constructores" . Diario del Dr. Dobb . Archivado desde el original el 7 de mayo de 2009 . Consultado el 25 de marzo de 2009 .
- ^ "Avanzar en el trabajo sobre el lenguaje D y la base" . 25 de agosto de 2015 . Consultado el 28 de agosto de 2015 .
- ^ Reddit.com: "Hace dieciséis años, a los 28, aterricé en Nueva York con $ 300 a mi nombre. Hoy me convertí en ciudadano estadounidense. ¡Ha sido un viaje salvaje que espero que continúe!"
- ^ a b Andrei Alexandrescu: currículum archivado el 7 de abril de 2011 en la Wayback Machine.
- ^ ACCU Spring Conference 2001 Archivado el 11 de agosto de 2011 en la Wayback Machine.
- ^ ACCU 2008: Altavoces
- ^ ACCU 2010: Altavoces
- ^ Ingeniería y Ciencias de la Computación, Doctorado reciente. Graduados (verano de 2009) .mark University of Washington.
- ^ [ Botet; Talbot. "Una propuesta para agregar una clase de utilidad para representar la mónada esperada" (PDF) . Archivado desde el original (PDF) el 19 de agosto de 2014.
- ^ https://github.com/viboes/std-make/blob/master/doc/proposal/expected/p0323r2.md#motivation
- ^ Alexandrescu. "Manejo sistemático de errores en C ++" .
- ^ Andrei Alexandrescu; Petru Marginean. "Genérico: cambie la forma en que escribe el código seguro para excepciones - para siempre" .
- ^ https://dlang.org/articles/exception-safe.html
- ^ https://metacpan.org/pod/Scope::Guard
- ^ https://docs.rs/scopeguard/1.1.0/scopeguard/
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