OBNC : Un Compilateur Oberon

2025-05-17

OBNC est un compilateur pour le langage de programmation Oberon de Niklaus Wirth, implémentant la version finale de 2016. Il traduit le code source écrit en Oberon vers le langage de programmation C de bas niveau. Le code traduit est ensuite compilé et lié à l'aide du compilateur et du lieur C du système d'exploitation hôte. La commande de compilation `obnc` effectue toutes ces tâches et garde une trace des fichiers qui doivent être compilés ou recompilés. Le compilateur est publié sous la Licence Publique Générale GNU, tandis que les bibliothèques sont publiées sous la Licence Publique Mozilla. Avec la licence Mozilla, un projet Oberon compilé avec OBNC peut être publié sous n'importe quelle licence. Le paquet source `obnc` contient le compilateur avec un outil de construction, un générateur de documentation et une petite bibliothèque de base de sept modules définis dans les Lignes directrices d'Oakwood pour les développeurs de compilateurs Oberon-2. Il contient également une bibliothèque (non standard) appelée `ext` qui étend la bibliothèque de base avec des modules pour accéder aux arguments de ligne de commande et aux variables d'environnement, imprimer sur le flux d'erreur standard, convertir les nombres en chaînes et vice-versa, et pour personnaliser le gestionnaire de pièges. La bibliothèque `ext` était auparavant distribuée sous forme de paquet séparé, mais elle est maintenant incluse dans le paquet principal pour plus de commodité. OBNC est implémenté en C et devrait compiler sur n'importe quel système d'exploitation compatible POSIX. Pour construire OBNC, vous avez également besoin du garbage collector Boehm-Demers-Weiser GC. Des instructions supplémentaires sont incluses dans le fichier README situé dans le répertoire racine du paquet. Pour les utilisateurs de MS Windows, il existe également une version précompilée d'OBNC avec toutes les dépendances incluses (GC, SDL, Gawk et TCC). Remarque : Les fichiers de sortie générés par la version 0.15 ou antérieure d'OBNC ne sont pas compatibles avec OBNC 0.17. Si vous avez utilisé une version antérieure, vos modules doivent être recompilés ; supprimez simplement le répertoire .obnc généré dans vos répertoires de modules avant d'utiliser la nouvelle version.

Développement