OBNC: Ein Oberon-Compiler
OBNC ist ein Compiler für die Programmiersprache Oberon von Niklaus Wirth, der die endgültige Version von 2016 implementiert. Er übersetzt Oberon-Quellcode in die niedrigere Programmiersprache C. Der übersetzte Code wird dann mit dem C-Compiler und dem Linker des Host-Betriebssystems kompiliert und verlinkt. Der Build-Befehl `obnc` führt all diese Aufgaben aus und verfolgt, welche Dateien kompiliert oder neu kompiliert werden müssen. Der Compiler wird unter der GNU General Public License veröffentlicht, während die Bibliotheken unter der Mozilla Public License veröffentlicht werden. Mit der Mozilla-Lizenz kann ein mit OBNC kompiliertes Oberon-Projekt unter jeder beliebigen Lizenz veröffentlicht werden. Das Quellpaket `obnc` enthält den Compiler mit einem Build-Tool, einem Dokumentationsgenerator und einer kleinen Basisbibliothek von sieben Modulen, die in den Oakwood-Richtlinien für Oberon-2-Compilerentwickler definiert sind. Es enthält auch eine (nicht standardmäßige) Bibliothek namens `ext`, die die Basisbibliothek um Module für den Zugriff auf Kommandozeilenargumente und Umgebungsvariablen, das Drucken auf den Standardfehlerstrom, die Konvertierung von Zahlen in Zeichenketten und umgekehrt sowie für die Anpassung des Trap-Handlers erweitert. Die `ext`-Bibliothek wurde früher als separates Paket vertrieben, ist aber jetzt der Einfachheit halber im Hauptpaket enthalten. OBNC ist in C implementiert und sollte auf jedem POSIX-kompatiblen Betriebssystem kompiliert werden können. Um OBNC zu erstellen, benötigen Sie außerdem den Boehm-Demers-Weiser-Garbage-Collector GC. Weitere Anweisungen finden Sie in der README-Datei im Stammverzeichnis des Pakets. Für MS Windows-Benutzer gibt es auch eine vorkompilierte Version von OBNC mit allen Abhängigkeiten (GC, SDL, Gawk und TCC). Hinweis: Ausgabedateien, die von OBNC Version 0.15 oder früher generiert wurden, sind nicht mit OBNC 0.17 kompatibel. Wenn Sie eine frühere Version verwendet haben, müssen Ihre Module neu kompiliert werden; löschen Sie einfach das generierte .obnc-Verzeichnis in Ihren Modulverzeichnissen, bevor Sie die neue Version verwenden.