Rust parece ser uma das linguagens modernas mais úteis para aplicar métodos formais.
As regras do Rust eliminam muitos casos que são difíceis de formalizar.
O grande problema restante é a análise de deadlock; se a análise estática de deadlock fosse possível em Rust, também seria possível obter backpointers seguros.
Aprendizado de máquina pode ajudar a orientar provadores de teoremas.
Citação do artigo de 1973 de Hoare
Restringir a crítica de Hoare a uma perspectiva centrada em Rust é artificial.
A discussão de Grayson é interessante o suficiente para superar as reclamações técnicas.
Crítica à análise de programas
Este texto ignora todo o campo da análise de programas.
Linguagens como Java têm GC, mas carecem de suporte forte para raciocínio local.
Análise de ponteiros e análise de escape podem inferir unicidade e determinar se referências são distintas.
Ceticismo em relação à verificação formal
Verificação formal é teoricamente interessante, mas seu uso prático é raro.
Escrever a especificação correta é tão difícil quanto programar corretamente.
F e Ada/SPARK2014*
A sintaxe de F* é preferida, mas Ada/SPARK2014 é usado em sistemas de controle relacionados à segurança.
Rust ainda não tem um padrão oficial, o que dificulta atrair o mesmo perfil de usuários de Ada/SPARK2014.
Limites dos métodos formais
Ausência de referências facilita a verificação formal, mas não é um método de verificação prático nem custo-efetivo.
A maioria dos programas é difícil de verificar formalmente.
Contagem de referências e coleta de lixo
Python usa um híbrido de contagem de referências e tracing.
Perl usa contagem de referências pura, mas gerencia estruturas cíclicas por meio de referências fracas.
Nim usa ORC para oferecer um sistema rápido que coleta apenas ciclos.
9º aniversário do Rust
Comemora-se o 9º aniversário do Rust 1.0.
Padrão Typestate
Gosta de ler textos sobre o padrão Typestate.
Type guards em tempo de compilação
Gostaria que fosse possível escrever type guards em tempo de compilação de forma mais simples.
As mensagens de erro de programas em nível de tipo são complexas e prejudicam a experiência do desenvolvedor.
Há necessidade de tornar os recursos de tempo de compilação do Rust mais simples e mais funcionais.
Este resumo oferece várias perspectivas e foi estruturado para ser fácil de entender por engenheiros de software iniciantes.
1 comentários
Comentário do Hacker News
Resumo dos comentários do Hacker News
Rust e métodos formais
Citação do artigo de 1973 de Hoare
Crítica à análise de programas
Ceticismo em relação à verificação formal
F e Ada/SPARK2014*
Limites dos métodos formais
Contagem de referências e coleta de lixo
9º aniversário do Rust
Padrão Typestate
Type guards em tempo de compilação
Este resumo oferece várias perspectivas e foi estruturado para ser fácil de entender por engenheiros de software iniciantes.