NovaLang0.2 alpha

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

  1. Clareza: contratos visíveis, ferramentas com nomes previsíveis e diagnósticos próximos do código.
  2. Uma toolchain integrada: nova formata, verifica, testa, compila e roda.
  3. Aprendizado gradual: sintaxe familiar, sem esconder o estado alpha.
  4. 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.