ooRexx (Open Object Rexx) ist der quelloffene Nachfolger von Object REXX, der objektorientierten Erweiterung von REXX, die IBM 1994 einführte. Nachdem IBM die Pflege einstellte, wurde der Quellcode 2005 als Open Source unter dem Namen Open Object Rexx freigegeben. ooRexx ist abwärtskompatibel: Klassische REXX-Programme laufen unverändert.
Starten
Auf Unix-Systemen wird ooRexx über den Interpreter rexx aufgerufen (Debian/Ubuntu-Paket oorexx), auf Windows über rexx.exe:
rexx hello.rex
Objektmodell
ooRexx bringt ein vollständiges Klassenmodell mit. Systemklassen beginnen mit einem Punkt, etwa .array, .list, .directory, .string oder .stream. Neue Klassen und Methoden werden über Direktiven wie ::class, ::method und ::routine definiert. Die REXX-Grundbefehle SAY, PULL, PARSE und DO/END bleiben unverändert gültig.
::class Auto
::method hupe
say 'Hup Hup!'
a = .Auto~new
a~hupe
Der Tilde-Operator ~ ruft eine Methode auf, ~new erzeugt eine neue Instanz.
Java-Anbindung
Mit der Brücke BSF4ooRexx lassen sich Java-Klassen aus ooRexx-Skripten instanziieren und Java-Methoden bidirektional aufrufen — nützlich, um Skripte um Bibliotheken aus dem Java-Ökosystem zu ergänzen.
Verwandte Grundlagen: Rexx-Befehle, NetRexx-Befehle, Regina-Befehle.