OBNC: Um Compilador Oberon
OBNC é um compilador para a linguagem de programação Oberon de Niklaus Wirth, implementando a versão final de 2016. Ele traduz o código-fonte Oberon para a linguagem de programação C de baixo nível. O código traduzido é então compilado e vinculado usando o compilador e o vinculador C do sistema operacional host. O comando de construção `obnc` executa todas essas tarefas e acompanha quais arquivos precisam ser compilados ou recompilados. O compilador é lançado sob a Licença Pública Geral GNU, enquanto as bibliotecas são lançadas sob a Licença Pública Mozilla. Com a licença Mozilla, um projeto Oberon compilado com OBNC pode ser lançado sob qualquer licença. O pacote inclui o compilador, uma ferramenta de construção, um gerador de documentação e uma pequena biblioteca básica de sete módulos definidos nas Diretrizes Oakwood para Desenvolvedores de Compiladores Oberon-2. Ele também contém uma biblioteca (não padrão) chamada `ext` que estende a biblioteca básica com módulos para acessar argumentos de linha de comando e variáveis de ambiente, imprimir no fluxo de erro padrão, converter números em strings e vice-versa e para personalizar o manipulador de armadilhas. A biblioteca `ext` foi anteriormente distribuída como um pacote separado, mas agora foi incluída no pacote principal por conveniência. OBNC é implementado em C e deve compilar em qualquer sistema operacional compatível com POSIX. Para construir o OBNC, você também precisa do coletor de lixo Boehm-Demers-Weiser GC. Mais instruções estão incluídas no arquivo README no diretório raiz do pacote. Para usuários do MS Windows, também há uma versão pré-compilada do OBNC com todas as dependências incluídas (GC, SDL, Gawk e TCC). Observe: os arquivos de saída gerados pela versão 0.15 ou anterior do OBNC não são compatíveis com o OBNC 0.17. Se você usou uma versão anterior, seus módulos precisam ser recompilados; simplesmente exclua o diretório .obnc gerado em seus diretórios de módulo antes de usar a nova versão.