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.