Boas-vindas e filosofia
NovaLang é uma linguagem e uma toolchain experimental, implementadas em Rust. Seu fluxo principal transforma fonte em bytecode e o executa em uma máquina virtual; um interpretador alternativo ajuda a comparar comportamentos.
.nova → lexer → parser → módulos → semântica → tipos
→ IR → otimização → bytecode → VM
Princípios
- Clareza: contratos visíveis, ferramentas com nomes previsíveis e diagnósticos próximos do código.
- Uma toolchain integrada:
novaformata, verifica, testa, compila e roda. - Aprendizado gradual: sintaxe familiar, sem esconder o estado alpha.
- Implementação compreensível: crates pequenas e fases explícitas.
O backend padrão é vm; --backend interp seleciona o interpretador. Eles não
têm paridade completa. Bytecode, AST Rust, APIs internas e formato de cache não
são estáveis entre versões alpha.
O que esta alpha não promete
Não há sandbox, ABI/FFI pública, concorrência, sistema de empréstimos, registro
remoto confiável ou compatibilidade de bytecode entre versões. async, traits,
interfaces, genéricos executáveis, exceções e defer são planejados. Se uma
construção reconhecida mas não executável for usada, espere A0001.