Zum Inhalt springen
hanse-computing.de
  • Moin
  • Über uns
  • Leistungen
  • Projekte
  • Neuigkeiten
  • Wissen
    • Netzwerktechniken
    • Systemadministration
    • Hardware-Spezifikationen
    • KI & Automatisierung
    • Glossar
      • Fachbegriffe
      • Programmiersprachen-Befehle
    • Datenbanken
    • IT-Grundlagen
    • Python: Grundlagen
    • Python: Datenstrukturen
    • Python: Dateien & IO
    • Python: Web & Frameworks
    • Python: Fehler & Debugging
    • Webentwicklung
    • Linux & Betriebssysteme
    • IT-Sicherheit
    • Cloud & Container
    • Tools & Software
    • Netzwerk: TCP/IP
    • Netzwerk: DNS & Dienste
    • Netzwerk: Sicherheit
    • Netzwerk: Tools
    • KI: Grundlagen
    • KI: Praxis
    • KI: LLM & Agenten
    • Hardware: Server
    • Hardware: Netzwerkgeräte
    • Hardware: Peripherie
    • Wiki-Startseite
    • Letzte Änderungen
    • Kategorie-Browser
    • Zufallsartikel
  • Infrastruktur
  • AI Easy Start
  • Test-Drive
  • Kontakt
  • Impressum
  • Datenschutz

Sprache auswählen

  • Deutsch (Deutschland)
  • English (United Kingdom)
  1. Aktuelle Seite:  
  2. Startseite
  3. Wissen
  4. Glossar
  5. Programmiersprachen-Befehle

ooRexx-Befehle: Objektorientiertes REXX (Open Object Rexx)

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.

Regina-Befehle: Der freie REXX-Interpreter für Unix

Regina ist ein freier REXX-Interpreter, den Mark Hessling ab 1992 entwickelte und der seither kontinuierlich gepflegt wird. Regina implementiert den SAA-Sprachstandard von REXX und wurde auf sehr viele Plattformen portiert: Linux, BSD, Solaris, AIX, macOS, Windows, OS/2, Amiga, OpenVMS und weitere. Damit ist Regina die erste Wahl für klassisches REXX-Skripting unter Unix.

Starten

Ein Regina-Skript wird direkt mit dem Befehl regina ausgeführt (Debian/Ubuntu-Paket regina-rexx):

regina hello.rexx

Die Dateiendung .rexx ist üblich, aber nicht vorgeschrieben — REXX-Quelltext ist reiner Text, das erste Zeichen des ersten Worts bestimmt bei einem Stapelverarbeitungsskript, wie es interpretiert wird.

Sprachkern

Regina deckt den kompletten REXX-Sprachkern ab: SAY für Ausgabe, PULL und PARSE für Eingabe und Zeichenkettenzerlegung, DO/END-Schleifen, IF/THEN/ELSE, benannte Prozeduren mit PROCEDURE und RETURN sowie ADDRESS, um Kommandos an das Betriebssystem zu senden.

say 'Hallo von Regina'
parse arg name
say 'Hallo,' name '!'
do i = 1 to 3
  say copies('*', i)
end

Anbindung

Die Regina-API ist konsistent mit IBMs Rexx-SAA-API, sodass C-Programme Regina als eingebettete Skriptsprache nutzen können — ein wichtiger Grund für die weite Verbreitung in Systemwerkzeugen.

Verwandte Grundlagen: Rexx-Befehle, ooRexx-Befehle, NetRexx-Befehle.

NetRexx-Befehle: REXX für die Java-Plattform

NetRexx ist eine von Mike Cowlishaw bei IBM entwickelte Variante von REXX, die direkt auf der Java-Plattform läuft. Der NetRexx-Übersetzer erzeugt aus dem Quelltext Java-Quellcode und daraus Java-Bytecode, sodass NetRexx-Programme wie normale Java-Klassen starten. Eine Besonderheit ist, dass NetRexx keine reservierten Schlüsselwörter kennt: Namen für Klassen und Methoden werden aus dem Kontext erkannt.

Übersetzen und Ausführen

Ein NetRexx-Programm liegt in einer Datei mit der Endung .nrx. Der Übersetzer heißt NetRexxC und wird als Java-Klasse aufgerufen:

java COM.ibm.netrexx.process.NetRexxC hello.nrx
java hello

Die erste Zeile übersetzt die Datei in eine Java-Klasse, die zweite startet das Programm. Optionen wie -format (Quelltext formatieren) oder -utf8 stehen vor oder nach der Dateiangabe.

Syntax im REXX-Stil

NetRexx behält die vertraute REXX-Syntax bei: SAY gibt Text aus, DO/END bilden Schleifen und Blöcke, IF/THEN/ELSE steuern den Ablauf. Da das Java-Objektmodell zugrunde liegt, lassen sich Java-Klassen direkt verwenden, etwa für Ein-/Ausgabe oder Datumsfunktionen.

say 'Hallo von NetRexx'
do i = 1 to 5
  say i
end

Verbreitung und Pflege

IBM übergab den Quellcode von NetRexx 3.00 im Juni 2011 an die Rexx Language Association (RexxLA), die den Übersetzer seither als Open Source pflegt. Die Jar-Dateien NetRexxC (Compiler) und NetRexxR (Interpreter) werden im Projektverzeichnis der RexxLA gebaut und verteilt.

Verwandte Grundlagen: Rexx-Befehle, ooRexx-Befehle, Regina-Befehle.

Modula-3-Befehle: Schnellreferenz für DECs objektorientierte Modula-Nachfolgerin

Modula-3 ist eine von Luca Cardelli und weiteren Forschern bei DEC (Digital Equipment Corporation) und Olivetti Ende der 1980er Jahre entworfene Systemprogrammiersprache. Sie übernimmt das Modulkonzept von Modula-2, ergänzt es aber um Objekte und Klassen, Ausnahmen, automatische Speicherbereinigung, Generik und leichtgewichtige Threads. Wichtig ist die Trennung von sicheren und unsicheren Modulen: Unsafe-Features (Zeiger, Typumwandlungen) werden explizit markiert und gekapselt.

Grundgerüst

MODULE Hallo;
IMPORT IO;
BEGIN
  IO.Put("Hallo, Welt!
");
END Hallo.

Wichtige Sprachmittel

  • INTERFACE / MODULE: Trennung von Schnittstelle und Implementierung wie in Modula-2; jede Schnittstelle deklariert die öffentlichen Typen und Prozeduren.
  • REVEAL: sichtbare und versteckte Typ-Eigenschaften — eine Type kann erst später als >= (Obertyp) oder <= (Untertyp) von etwas anderem bekannt gemacht werden.
  • REFANY / OBJECT: Referenztyp-Hierarchie; Objekte werden über Referenzen angesprochen, Methoden heißen in Modula-3 Methoden (METHODS ... END).
  • GENERIC: generische Interfaces und Module zur typsicheren Wiederverwendung.
  • UNSAFE: explizit markierte unsichere Module, in denen Zeiger und Typumwandlungen erlaubt sind.
  • THREAD: leichtgewichtige Threads mit MUTEX und Condition-Variablen als Teil der Standardbibliothek.

Werkzeuge

cm3 -build            # Projekt bauen (README/Quellbaum)
cm3 -ship             # gebaute Artefakte in das Installationsverzeichnis kopieren
cm3 -install          # Bibliotheken/Programme systemweit installieren
cm3 -C                # (Re-)Kompilierung von Modulen im aktuellen Verzeichnis
m3ship                # Ship-Tool der CM3-Distribution
m3tk                  # Modula-3-Toolkit
m3tohtml              # Quelltext-Konverter nach HTML
m3c / m3front         # C-/Frontend-Tools der CM3-Toolchain

Praxis-Tipps

  • Der Referenz-Compiler ist Critical Mass CM3 (Open Source, aus dem DEC-SRC-Nachfolger hervorgegangen, heute von Elego Software Solutions gepflegt).
  • Modula-3 war das erste große System mit automatischer Speicherbereinigung für Systemsprachen und beeinflusste unter anderem Java und C#.
  • Die Sprache blieb wissenschaftlich einflussreich, fand aber nie breite kommerzielle Verbreitung — heute vor allem historisch und in Lehrbüchern präsent.

Verwandte Grundlagen: Modula-2-Befehle, Oberon-Befehle, Component-Pascal-Befehle und Sather-Befehle.

Component-Pascal-Befehle: Schnellreferenz für BlackBox Component Builder

Component Pascal ist eine 1994 bei der ETH-Zürich-Ausgründung Oberon microsystems entstandene objektorientierte Variante der Wirth-Sprachfamilie, ursprünglich unter dem Namen Oberon/L entwickelt. Sie ist eine Erweiterung von Oberon-2 um Komponenten- und GUI-Fähigkeiten. Das wichtigste Werkzeug ist die IDE BlackBox Component Builder (Open Source): ein integriertes System zum Editieren, Kompilieren, Ausführen und Debuggen von Component-Pascal-Programmen, in dem jedes Modul eine Einheit aus Kompilierung und Ausführung ist.

Grundgerüst

MODULE Hallo;
IMPORT StdLog;
PROCEDURE Go*;
BEGIN
  StdLog.String("Hallo, Welt!"); StdLog.Ln
END Go;
END Hallo.

Wichtige Sprachmittel

  • MODULE / IMPORT: Module sind Kompilierungs- und Ausführungseinheiten; exportierte Bezeichner enden mit * (z.B. PROCEDURE Go*).
  • PROCEDURE: Prozeduren, auch typ-gebunden (Methoden) mit Receiver — z.B. PROCEDURE (c: Controller) Handle*.
  • RECORD-Typerweiterung: objektorientierte Vererbung durch erweiterbare Records.
  • POINTER: Referenztypen für dynamische Datenstrukturen.
  • Arrays, Sets, CASE, IF…ELSIF: wie in der Wirth-Familie üblich.

Werkzeuge

DevCP.exe             # BlackBox-Hauptprogramm (IDE)
DevCtl.exe            # Kommandozeilen-/Scripting-Steuerung (Control-Log)
DevTool.exe           # Tool-Steuerung für CI-Skripte
DevComp.exe           # Compiler-Aufruf aus Skripten
obc                   # OBNC/BlackBox-Kommandozeilen-Compiler (optional)

Praxis-Tipps

  • BlackBox ist stark komponentenorientiert: GUIs, Dokumente und Hosts werden als wiederverwendbare Module entwickelt, die zur Laufzeit geladen werden.
  • Der Compiler ist sehr schnell; Module werden erst bei Bedarf in den Speicher geladen (lazy loading).
  • Die Sprache gehört zur Wirth-Linie Pascal → Modula-2 → Oberon → Component Pascal und ist damit eine Brücke zwischen klassischen Systemsprachen und Komponenten-Frameworks.

Verwandte Grundlagen: Oberon-Befehle, Modula-2-Befehle, Modula-3-Befehle und Pascal-Befehle.

  1. Sather-Befehle: Schnellreferenz für Berkeleys objektorientierte Sprache
  2. Chapel-Befehle: Schnellreferenz für den chpl-Compiler
  3. Ballerina-Befehle: Schnellreferenz für das bal-Toolkit
  4. BCPL-Befehle: Schnellreferenz für den Cintcode-Compiler

Seite 16 von 46

  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
hanse-computing.de

hanse-computing.de – KI-gestützte Dienstleistungen aus Lübeck.

hanse-computing.de
IT-Dienstleistungen aus der Hansestadt
Über uns · Projekte · Neuigkeiten · Affiliate
Impressum · Datenschutz
© 2026 hanse-computing.de
© 2026 hanse-computing Impressum Datenschutz