Cópia estática
Copiado de docs/getting-started/what-is-aipo.md em https://github.com/poppy-team/aipo-lang (MIT). Fixado na revisão ce47c4e070404fc41722ccd8e2b7b808b99062a8, blob b17a385c320e4cde16eb699520ac1db99decc73b. O repositório de origem permanece canônico; esta cópia é atualizada por um pull request de sincronização, não em tempo real.
O Aipo é uma linguagem de programação moderna de propósito geral, com tipagem dinâmica e forte, dotada de suporte nativo a contratos de assinatura e invariantes estruturais.
Projetada com uma filosofia de simplicidade, robustez e previsibilidade, o Aipo foi construído do zero em Rust com arquitetura limpa e sem dependências ocultas.
No Aipo, valores possuem tipos concretos e o sistema não realiza conversões arbitrárias ou silenciosas entre tipos incompatíveis:
let x = "42"
let y = 10
# Erro de tipo em tempo de execução:
# Operador '+' não aplica concatenação entre String e Int
let z = x + y # Falha explícita!Para concatenar ou converter valores, exige-se intenção explícita ou formatação declarada.
Enquanto linguagens tradicionais exigem que você espalhe asserções ou validações manuais em todos os métodos, o Aipo introduz o hook invariant associado diretamente ao tipo:
struct Temperature {
var celsius: Float = 0.0
}
Temperature:invariant {
self.celsius >= -273.15 # Não pode ser inferior ao zero absoluto
}Além de structs, o Aipo oferece enums como tipos de soma fechados com verificação obrigatória de exaustividade em match:
enum ModoOperacao {
Manual,
Automatico { intervalo_ms: Int },
}Qualquer mutação que viole a invariante é interceptada na fronteira da operação. Dentro de blocos de transação attempt { ... } failed err { ... }, as alterações sofrem rollback atômico para o estado anterior.
O modelo de concorrência do Aipo é baseado em fibras cooperativas e tempo virtual. As chamadas assíncronas usam async fn e combinadores de alto nível (task.spawn, task.sleep, task.all, task.race), orquestrados por um scheduler determinístico que permite testes 100% reproduzíveis.
O compilador do Aipo foi desenvolvido com duas metas principais:
.aibc) e inspeção de baixo nível com desassemblador de linha/coluna.aipo-js): Emissão direta de JavaScript moderno (ES2022) com runtime shim modular e paridade diferencial bit a bit garantida por suíte de testes.| Recurso | Aipo | Python | Lua | JavaScript |
|---|---|---|---|---|
| Tipagem | Dinâmica e Forte | Dinâmica e Forte | Dinâmica e Fraca | Dinâmica e Fraca |
| Invariantes Nativas | Sim (invariant()) | Não (manual) | Não | Não |
| Rollback Transacional | Sim (attempt) | Não | Não | Não |
| Async Nativo | Sim (Determinístico) | Sim (asyncio) | Corrotinas (baixo nível) | Sim (Event Loop) |
| Módulos / Dependências | SHA Pinada + Offline | Pip / Virtualenv | Externa (Luarocks) | NPM / Node Modules |
| Implementação | Rust (Compilador + VM) | C / C++ | ANSI C | C++ (V8) / Rust (Deno) |