NovaLang0.2 alpha

Dados compostos

Arrays

let values = [10, 20, 30];
print(values[0]);
values[1] = 25;
print(len(values));

Índices começam em zero. Acesso fora dos limites é erro de execução. Arrays vivem no heap gerenciado pelo runtime; não existe desalocação manual.

Structs

struct Point {
    x: int,
    y: int,
}

fn main() -> void {
    let p = Point { x: 4, y: 8 };
    print(p.x);
}

Structs e acesso a membros são parciais: valide no backend escolhido antes de adotar em um exemplo importante. Tuplas e objetos literais são experimentais.

Enums, traits, interfaces, impl e genéricos já aparecem no lexer/parser e em partes da análise, mas não possuem execução e despacho estabilizados. São planejados e podem produzir A0001. Não os trate como recursos da alpha.

O coletor de lixo é interno e automático. Isso não significa segurança para programas hostis: ainda não há cotas de heap, CPU ou saída.