Linguagem dinâmica com contratos opcionais
Aipo.
Aipo é uma linguagem de propósito geral, dinâmica e fortemente tipada, com suporte a contratos e invariantes. Seu toolchain em Rust inclui uma VM de bytecode e um backend JavaScript.
01
A pergunta
Para que existe
Aipo investiga como manter a flexibilidade de uma linguagem dinâmica sem esconder incompatibilidades de tipos, e como aproximar contratos do código que eles protegem.
02
Algumas coordenadas
Princípios de projeto
- 01
Conversões intencionais
Valores incompatíveis não são convertidos silenciosamente; o programa precisa expressar a intenção.
- 02
Invariantes junto aos dados
Contratos estruturais podem ser declarados no próprio modelo que deve preservá-los.
- 03
Mais de um destino
O projeto mantém uma VM de bytecode em Rust e um backend que emite JavaScript.
03
Uma amostra estática
Primeira saída
io.println("Olá do Aipo!")Este bloco é apenas uma amostra de código. Esta página não compila nem executa Aipo no navegador.