OBNC ist ein moderner Compiler, der speziell für die Programmiersprache Oberon entwickelt wurde. Oberon selbst wurde von dem renommierten Informatiker Niklaus Wirth entworfen, der auch bekannt ist für die Schaffung von Sprachen wie Pascal und Modula-2. Die Programmiersprache Oberon zeichnet sich durch ihre Klarheit, Einfachheit und eine gut durchdachte modularisierte Struktur aus. OBNC setzt dabei an, die finale Version der Sprache aus dem Jahr 2016 umzusetzen und bringt damit eine umfassende Unterstützung der Oberon-07 Spezifikation. Aber was genau ist OBNC und warum gewinnt dieser Compiler heute wieder verstärkt an Bedeutung? Die Antwort liegt in seinem Funktionsprinzip, seiner Lizenzierung und den technischen Besonderheiten, die sowohl für Entwickler als auch für Open-Source-Enthusiasten besonders interessant sind.
OBNC ist im Grunde ein Übersetzer, der Quellcode, der in Oberon geschrieben wurde, in die Programmiersprache C überführt. Diese Übersetzung ermöglicht eine enorme Portabilität, denn einmal erzeugter C-Code kann auf nahezu jedem Betriebssystem kompiliert werden, das über einen passenden C-Compiler verfügt. Die Verbindung zu C ist aus mehreren Gründen besonders sinnvoll: C ist praktisch universell anerkannt und unterstützt, außerdem existieren umfangreiche Optimierungswerkzeuge und Compiler für unterschiedlichste Hardware-Architekturen. Somit können Oberon-Projekte, die mittels OBNC kompiliert werden, von der Stabilität und der weiten Verbreitung der C-Umgebung profitieren. Das zentrale Kommandozeilen-Tool obnc übernimmt dabei den gesamten Prozess.
Es verwaltet nicht nur die Übersetzung, sondern erkennst auch automatisch, welche Dateien neu kompiliert werden müssen, was die Entwicklungsarbeit effizienter und weniger fehleranfällig macht. Ein wesentlicher Aspekt von OBNC ist seine Lizenzierung: Der Compiler selbst wird unter der GNU General Public License (GPL) veröffentlicht, während die mitgelieferten Bibliotheken unter der Mozilla Public License (MPL) stehen. Diese Kombination bietet eine besondere Flexibilität für Entwickler. Die MPL erlaubt es, dass Projekte, die mit OBNC kompiliert wurden, unter einer beliebigen Lizenz weitergegeben werden können. Dies erleichtert die Integration in proprietäre Systeme ebenso wie die Verwendung in freien, offenen Softwareprojekten.
Diese Offenheit macht OBNC zu einer äußerst attraktiven Option für verschiedenste Entwicklergemeinschaften und Unternehmen. Im Hinblick auf den Aufbau enthält das OBNC-Paket neben dem Compiler selbst auch mehrere wichtige Zusatzkomponenten. Darunter befinden sich beispielsweise ein Werkzeug zur Dokumentationserzeugung und eine kleine Basissammlung von sieben Modulen. Diese Module orientieren sich an den sogenannten Oakwood Guidelines für Oberon-2 Compiler Entwickler, welche als bewährte Standards im Oberon-Umfeld gelten. Zudem umfasst das Paket eine Erweiterungsbibliothek namens ext, die Zugang zu Funktionen ermöglicht, welche im Standardumfang der Sprache nicht enthalten sind.
Zu diesen Funktionen gehören die Verarbeitung von Kommandozeilenargumenten, der Zugriff auf Umgebungsvariablen, das Ausgeben von Fehlernachrichten auf den Standard-Fehlerstrom, das Konvertieren von Zahlen in Strings und zurück sowie die individuelle Anpassung des sogenannten Trap Handlers, was für die Fehlerbehandlung in Oberon-Programmen relevant ist. Interessanterweise war die ext-Bibliothek ursprünglich ein eigenständiges Paket, ist aber inzwischen im Hauptpaket integriert, was Installationen und Updates vereinfacht. Ein weiterer Vorteil von OBNC liegt in seiner plattformübergreifenden Ausrichtung. Die Implementierung in C bedeutet, dass der Compiler auf jedem Betriebssystem kompiliert und ausgeführt werden kann, das mit POSIX kompatibel ist. Für die Garbage Collection setzt OBNC auf den bekannten Boehm-Demers-Weiser-Garbage-Collector, der eine automatische Speicherbereinigung ermöglicht und zur Stabilität und Effizienz der generierten Programme wesentlich beiträgt.
Für Nutzer von Microsoft Windows gibt es sogar eine vorgefertigte und vorkompilierte Version von OBNC, inklusive aller notwendigen Abhängigkeiten wie Garbage Collector, SDL, Gawk und TCC. Dieses Paket ist bequem herunterladbar und erleichtert vor allem Einsteigern und Windows-Nutzern den Start in die Oberon-Programmierung deutlich. Es ist wichtig zu wissen, dass die Ausgabe von OBNC in Version 0.17 nicht kompatibel ist mit älteren Versionen ab 0.15.
Wer also bereits Oberon-Module mit einer älteren Version kompiliert hat, muss diese neu kompilieren, um die neue Version ohne Konflikte einsetzen zu können. Typischerweise genügt es, das Verzeichnis .obnc in den Modulordnern zu löschen, nachdem eine Sicherung vorgenommen wurde, um anschließend mit der neuen OBNC Version fortzufahren. Zur Verbesserung der Programmiererfahrung gehören auch hilfreiche Tools für die Quellcodebearbeitung. Für den beliebten Texteditor Gedit wurde eine eigene Sprachunterstützung entwickelt, die Syntax-Hervorhebung für Oberon-Quelltexte bietet.
Ergänzend dazu gibt es ein Plugin, das reservierte und vordefinierte Oberon-Wörter automatisch beim Tippen in Großbuchstaben umwandelt, wie es für Oberon üblich ist. Diese Erweiterungen sind ebenfalls kompatibel mit dem auf Gedit basierenden Editor Pluma, der etwa in der Linux-Distribution MATE häufig zum Einsatz kommt. Damit wird das Schreiben von Oberon-Code nicht nur einfacher, sondern auch weniger fehleranfällig. Für Entwickler, die neu in Oberon und OBNC sind, stehen eine Reihe von Hilfsmitteln zur Verfügung. Einstiegshilfen, FAQs und praktische Anleitungen erleichtern das Einarbeiten und den produktiven Einsatz des Compilers.
Weiterführende Literatur, beispielsweise das Buch "Object-Oriented Programming in Oberon-2" von Hanspeter Mössenböck, liefert zudem tiefgehende Einblicke in die Sprache und ihre objektorientierten Erweiterungen. Obwohl OBNC standardmäßig die reine Oberon-07 Sprache unterstützt, zeigt dieses Buch, wie Oberon-2-Typen und die Implementierung von Klassen funktionieren, was für fortgeschrittene Nutzer wertvolle Anknüpfungspunkte bietet. Der Support und Austausch innerhalb der Oberon-Community ist gut organisiert. Fragen können auf beliebten Plattformen wie Stack Overflow gestellt werden, außerdem existiert eine dedizierte Mailingliste bei der ETH Zürich sowie das klassische Usenet-Forum comp.lang.
oberon, das Liebhabern und Experten der Sprache als Diskussionsplattform dient. Darüber hinaus ist der Entwickler von OBNC, Karl, direkt per E-Mail erreichbar, was viele Nutzer als besonderen Vorteil für die schnelle Problembehebung schätzen. OBNC setzt sich als moderner Compiler nicht nur durch seine technische Qualität, sondern auch durch seine Offenheit und Flexibilität ab. Er verbindet die robuste Oberon-Programmiersprache mit der allgegenwärtigen Welt von C und bietet damit ein mächtiges Werkzeug für Softwareentwicklung auf vielen Plattformen. Die Lizenzbedingungen erlauben einen unkomplizierten Einsatz in privaten, akademischen oder kommerziellen Projekten, was OBNC zu einer attraktiven Wahl auch für professionelle Entwicklerteams macht.