Skip to content

Projetos02 · Linguagem dinâmica

Aipo.

S2CONTRACTS-FIRST

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

  1. 01

    Conversões intencionais

    Valores incompatíveis não são convertidos silenciosamente; o programa precisa expressar a intenção.

  2. 02

    Invariantes junto aos dados

    Contratos estruturais podem ser declarados no próprio modelo que deve preservá-los.

  3. 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

Exemplo estático da documentação de Aipo aipo
io.println("Olá do Aipo!")

Olá do Aipo!

Este bloco é apenas uma amostra de código. Esta página não compila nem executa Aipo no navegador.

04

Documentação

Leia os guias

Desenvolvimento75 páginas

Arquitetura interna, convenções e material para quem contribui.