Pular para o conteúdo

O que é Aipo?

Fonte: docs/getting-started/what-is-aipo.md · revisão e9ec458cc39c6da005cd81e959360ec89648b8c7 · blob b9417f44d84e5ddddfcd9d4c4af51819b755df75 · licença MIT.

Cópia estática para leitura. A documentação completa e canônica permanece no repositório de Aipo.

English: What is Aipo?

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, Aipo foi construída do zero em Rust.

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:
// O operador '+' não concatena String e Int implicitamente.
let z = x + y

Para concatenar ou converter valores, exige-se intenção explícita ou formatação declarada.

O hook invariant() pode declarar uma regra estrutural junto à implementação de uma estrutura:

struct Temperature {
var celsius = 0.0
}
impl Temperature {
invariant {
self.celsius >= -273.15 # Não pode ser inferior ao zero absoluto
}
}

Em blocos transacionais attempt { ... } failed err { ... }, uma mutação que viole a invariante pode ser revertida.

Aipo descreve um modelo baseado em fibras cooperativas e tempo virtual. Chamadas assíncronas usam async fn e combinadores de tarefas, como task.spawn, task.sleep, task.all e task.race.

  1. VM de bytecode em Rust: executa bytecode e permite inspecionar instruções.
  2. Backend JavaScript: emite JavaScript moderno com um runtime modular.