Todos os projetosLinguagem dinâmica · 02

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

  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 Aipoaipo
io.println("Olá do Aipo!")

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