NovaLang0.2 alpha

Fundamentos da linguagem

Valores e bindings

let name: string = "Ada";
let mut visits: int = 0;
visits = visits + 1;
const MAX: int = 100;

let cria um binding; mut permite reatribuição. const exige inicializador. var também é reconhecido, mas a distinção completa entre let, var e const ainda é parcial entre backends; prefira let e const.

Tipos

Os tipos práticos da alpha são int, float, bool, char, string e void. Os nomes inteiros com largura (i32, u64 etc.) convergem internamente para int; não dependa ainda de overflow ou largura específicos. null, never, any, opcionais e uniões têm contrato parcial.

Operadores

let total = 2 + 3 * 4;
let same = total == 14;
let inside = total >= 0 && total < 20;
let text = "Nova" + "Lang";

Aritmética: + - * / %; comparação: == != < <= > >=; lógica: && || ! (ou and, or, not); bit a bit: & | ^ ~ << >>.

Atenção: a VM ainda avalia os dois operandos de && e ||. Não coloque efeitos colaterais no lado direito esperando curto-circuito.

Comentários de linha começam com //; blocos usam /* ... */. Identificadores Unicode são aceitos, mas nomes ASCII são mais portáveis no ecossistema atual.