Andrei Alexandrescu - Andrei Alexandrescu

Andrei Alexandrescu
AndreiAlexandrescu.jpg
Alexandrescu na ACCU 2009
Nascer 1969 (idade 51-52)
Nacionalidade Romeno , americano
Educação Politehnica University of Bucareste e Universidade de Washington
Ocupação Desenvolvedor da linguagem de programação D
Conhecido por Especialista em programação C ++ e D
Cônjuge (s) Sanda Alexandrescu
Local na rede Internet erdani .org

Andrei Alexandrescu (nascido em 1969) é um programador e autor das linguagens C ++ e D romeno-americano . Ele é particularmente conhecido por seu trabalho pioneiro em design baseado em políticas implementado por meio de metaprogramação de modelo . Essas ideias são articuladas em seu livro Modern C ++ Design e foram implementadas pela primeira vez em sua biblioteca de programação, Loki . Ele também implementou o conceito de " mover construtores " em sua biblioteca MOJO. Ele contribuiu para o C / C ++ Users Journal com a assinatura "Generic <Programming>". Alexandrescu trabalhou como cientista pesquisador no Facebook , antes de deixar a empresa em agosto de 2015 para se concentrar no desenvolvimento da linguagem de programação D.

Ele se tornou cidadão americano em agosto de 2014.

Educação e carreira

Alexandrescu recebeu um diploma de BS em Engenharia Elétrica da Universidade Politécnica de Bucareste ( Universitatea Politehnica din București ) em julho de 1994.

Seu primeiro artigo foi publicado no C / C ++ Users Journal em setembro de 1998. Ele foi gerente de programa da Netzip, Inc. de abril de 1999 a fevereiro de 2000. Quando a empresa foi adquirida pela RealNetworks, Inc. , ele atuou lá como desenvolvedor gerente de fevereiro de 2000 a setembro de 2001.

Alexandrescu obteve um MS (2003) e um Ph.D. (2009) em ciência da computação pela Universidade de Washington .

Mais recentemente, ele tem ajudado Walter Bright no desenvolvimento da linguagem de programação D . Alexandrescu lançou um livro intitulado The D Programming Language em maio de 2010.

De 2010 a 2014, Alexandrescu, Herb Sutter e Scott Meyers realizaram uma pequena conferência técnica anual chamada C ++ and Beyond .

Contribuições

Esperado

Esperada é uma classe de modelo para C ++ que está no caminho dos Padrões C ++. Alexandrescu propõe Expected<T>uma classe para uso como um valor de retorno que contém um T ou a exceção que impede sua criação, que é uma melhoria em relação ao uso de códigos de retorno ou exceções exclusivamente. Esperado pode ser considerado uma restrição de tipos de soma (união) ou tipos de dados algébricos em várias línguas, por exemplo, Esperança ou os mais recentes Haskell e Gallina ; ou do mecanismo de tratamento de erros do Go do Google , ou do tipo Result no Rust .

Ele explica os benefícios de Expected<T>:

  • Associa erros com objetivos computacionais
  • Naturalmente, permite várias exceções em andamento
  • Alternar entre os estilos de "tratamento de erros" e "lançamento de exceções"
  • Teleportação possível através dos limites do thread, através dos limites do subsistema nothrow e através do tempo (salve agora, jogue depois)
  • Colete, agrupe, combine exceções

Exemplo

Por exemplo, em vez de qualquer um dos seguintes protótipos de função comuns:

int parseInt(const string&); // Returns 0 on error and sets errno.

ou

int parseInt(const string&); // Throws invalid_input or overflow

ele propõe o seguinte:

Expected<int> parseInt(const string&); // Returns an expected int: either an int or an exception

Scope guard

De 2000 em diante, Alexandrescu defendeu e popularizou o idioma do protetor de escopo. Ele o introduziu como uma construção de linguagem em D. Ele foi implementado por outros em muitas outras linguagens.

Bibliografia

  • Andrei Alexandrescu (fevereiro de 2001). Projeto C ++ Moderno : Programação Genérica e Padrões de Projeto Aplicados . Addison-Wesley. ISBN 978-0-201-70431-0.
  • Herb Sutter , Andrei Alexandrescu (novembro de 2004). Padrões de codificação C ++: 101 regras, diretrizes e práticas recomendadas . Addison-Wesley. ISBN 978-0-321-11358-0.
  • Andrei Alexandrescu (junho de 2010). A programação D Idioma . Addison-Wesley. ISBN 978-0-321-63536-5.

Referências

links externos