ARexx

ARexx

ARexx ist eine Portierung der Programmiersprache REXX für den Amiga-Computer und wurde 1987 von William S. Hawes entwickelt. ARexx ist, wie REXX, eine Interpreter-basierte Programmiersprache. Programme die in ARexx entwickelt werden, nennt man Skript- oder auch Makro-Programme.

Die meisten Amiga-Programme verfügen über die Möglichkeit, ARexx-Skripte auszuführen um den Funktionsumfang zu erweitern bzw. um über den ARexx-Port individuelle Problemlösungen zu gewährleisten.

Mittels ARexx besteht die Möglichkeit, dass zwei Programme miteinander über ihren jeweiligen ARexx-Port kommunizieren können, um die jeweils anderen Funktionen des Programmes nutzen können.

Zum Beispiel kann sich ein ARexx-Skript Informationen aus einer Datenbank holen, diese werden dann in eine Tabellenkalkulation übernommen um das endgültige Ergebnis automatisch in ein Textverarbeitungsprogramm zu übernehmen. ARexx dient also primär dazu, sich wiederholende Vorgänge zu automatisieren.

Inhaltsverzeichnis

Geschichte

ARexx wurde 1987 von William S. Hawes von Wishful Thinking Development entwickelt und kam ca. 1990 mit dem OS2.04 durch Commodore auf dem Amiga zum Einsatz. ARexx basiert im Wesentlichen auf REXX, welches von Mike Cowlishaw bei IBM in den 80er Jahren für Großrechner (Mainframes) auf CMS-Betriebssystemen entwickelt wurde. ARexx unterscheidet sich allerdings rudimentär von der IBM-REXX-Sprache, da es speziell für Amiga und seine Umgebung geschrieben wurde. Seit dem OS3.5 bietet die Amiga-Workbench einen eigenen ARexx-Port an, worüber Systemfunktionen durch ARexx genutzt werden können.

Wie funktioniert ARexx

ARexx ist eine Interpreter-basierte Sprache, was bedeutet, dass ARexx-Skripten während ihrer Laufzeit, also während sie ausgeführt werden, durch einen Interpreter, dem Programm RexxMast, in Maschinensprache übersetzt werden. Dadurch sind die Skripten sofort einsatzfähig, ohne das man sie wie bei C oder C++ vorher kompilieren muss. Der Nachteil dieser Interpretersprache: sie ist relativ langsam und benötigt immer den Interpreter, um ausgeführt zu werden. Da ARexx ohne Typen auskommt, kann jede Variable ein Text, eine Zahl oder eine beliebige Zeichenkette sein, wobei diese Variablen im Vorfeld nicht deklariert werden müssen. Der RexxMast liest ARexx-Skripten als Textdatei ein und führt sie Befehl für Befehl aus. RexxMast kontrolliert dabei automatisch die Ressourcen und fängt Fehler ab. ARexx bedient sich der AmigaOS eigenen Umgebung und nutzt sowohl dessen Multitasking, die installierten Bibliotheken (Libraries) und nutzt die Prozesskommunikation. Dazu werden zwischen den Message-Ports, die ein Programm zur Verfügung stellt, Nachrichten (messages) verschickt, die dann von dem jeweiligen Programm abgeholt und verarbeitet werden. Dabei wird folgende Reihenfolge eingehalten:

  • Beim Programmstart öffnet ein Anwendungsprogramm einen Message-Port.
  • Das Programm wartet auf den Empfang einer Nachricht (message).
  • Das Betriebssystem teilt dem Programm mit, dass eine Nachricht an seinen Message-Port gesendet worden ist.
  • Das Programm führt die angeforderte Aktion aus.
  • Zum Schluss teilt das Programm dem Absender der Nachricht mit, dass die Nachricht (message) empfangen und verarbeitet wurde. Es wird dabei entweder ein Rückgabewert geliefert oder aber die angeforderten Daten gesendet.

Der Befehlssatz von ARexx ist sehr simpel gehalten und nutzt überwiegend Befehle um Strings (Zeichenketten) zu manipulieren. Da es aber eine Vielzahl an zusätzlichen Erweiterungen für ARexx gibt, ist es sogar möglich, eine Programmoberfläche (GUI) mittels ARexx zu erstellen, um direkt mit dem Anwender in Kontakt zu treten, um dadurch Eingaben oder Abfragen zu erhalten.

Aufbau eines ARexx-Skripts

Jedes ARexx-Skript besteht mindestens aus einer Kommentarzeile, dabei muss das Skript stets mit einer Kommentarzeile beginnen (aus historischen Gründen):

/* Dies ist mein Programm */

Diese Kommentarzeile teilt dem RexxMast mit, das es sich bei dem vorliegenden Skript um ein ARexx-Skript handelt. Weitere Kommentarzeilen werden von RexxMast ignoriert, dienen aber natürlich der Verständlichkeit, vor allem wenn man nach Wochen oder Monaten das Skript selber nochmal bearbeiten möchte.

Nach der Kommentarzeile beginnt dann das eigentliche Programm:

SAY "Hallo Welt"

In diesem Fall würde der Text "Hallo Welt" in der Konsole ausgegeben werden.

Interne oder externe ARexx-Befehle

ARexx bietet eine umfangreiche Bibliothek von vordefinierten Funktionen. Diese Funktionen sind stets verfügbar und auf die interne Datenstruktur des AmigaOS optimal abgestimmt, weshalb sie vom REXX Befehlssatz teilweise stark abweichen bzw. dort nicht zu finden sind (Beispiel: ADDLIB() ).

Zu diesen vordefinierten Funktionen gibt es eine Vielzahl von Zusatzbibliotheken (libraries), die den Funktionsumfang von ARexx erheblich steigern. Diese Zusatzbibliotheken werden aus dem ARexx-Skript heraus nachgeladen und stehen dann zur Verfügung. Hier einige Beispiele:

  • rexxreqtools.library
Erweitert ARexx um damit Dateien-, Verzeichnisse und Zeichensätze über Auswahlfenster auszuwählen.
  • tritonrexx.library
Erlaubt es mittels ARexx grafische Oberflächen (GUI) zu erstellen.
  • rexxtricks.library
Bietet Funktionen um via ARexx Amiga-DOS, SCSI-, Bildschirm- und Piktogramm-Funktionen zu nutzen.

Dies stellt allerdings nur einen kleinen Einblick der vorhandenen Bibliotheken dar, mit denen man ARexx erweitern kann.

ARexx-Skripte kompilieren

Es gab eine weit verbreitete Meinung, dass es möglich sei, ARexx-Skripte zu kompilieren und dafür gab es auch zwei Programme, RexxMasher und ExecRexx. Diese beiden Programme waren allerdings keine Compiler. Beide Programme entfernten lediglich alle Kommentarzeilen aus dem Skript, kodierten das Skript und fügten ein Programm hinzu, damit man das Skript ausführen konnte. Beim Programmstart wurde das Skript wieder dekodiert und es war noch immer der RexxMast notwendig, um das Skript auszuführen. Durch das Entfernen der Kommentarzeilen konnte es allerdings bei sehr umfangreichen ARexx-Skripten vorkommen, dass das "kodierte" Skript nicht mehr fehlerfrei funktionierte.



Wikimedia Foundation.

Игры ⚽ Нужна курсовая?

Schlagen Sie auch in anderen Wörterbüchern nach:

  • ARexx — is an implementation of the REXX language for the Amiga, written in 1987 by William S. Hawes, with a number of Amiga specific features beyond standard REXX facilities. Like most REXX implementations, ARexx is an interpreted language. Programs… …   Wikipedia

  • ARexx — Autor William S. Hawes Información general Género ? Programado en Ensamblador …   Wikipedia Español

  • AREXX — abbr. Amiga Restructured EXtended eXecutor (language) (Amiga, Commodore, REXX) …   United dictionary of abbreviations and acronyms

  • AmigaOS — Скриншот AmigaOS 3.9 Разработчик Commodore International …   Википедия

  • AmigaOS versions — There have been many different versions of the AmigaOS operating system during its two decades of history.The first AmigaOS was nicknamed Workbench from the name of its GUI Interface, due to an error of Commodore Marketing and Sales Department,… …   Wikipedia

  • AmigaOS 4 — A screenshot of AmigaOS 4.1 Update 2. Company / developer Hyperion Entertainment Programmed in C OS family …   Wikipedia

  • AmigaOS — Infobox OS name = AmigaOS logo = caption = A screenshot of AmigaOS 4.0 family = Amiga OS developer = Commodore International (1.0 3.1) Haage Partner (3.5 3.9) Hyperion Entertainment (4.0) source model = Closed source working state = Current… …   Wikipedia

  • Amiga-Computer — Letztes offizielles Logo Der Commodore Amiga (spanisch amiga: Freundin) war ein von Mitte der 1980er bis Anfang/Mitte der 1990er weit verbreiteter Computer, der besonders in seinen Einsteigermodellen (A500 und A1200) als Heimcomputer beliebt war …   Deutsch Wikipedia

  • AmigaDOS — AmigaOS Basisdaten Entwickler Commodore International (1.0 3.1) Haage Partner (3.5 3.9) …   Deutsch Wikipedia

  • AmigaOS — Basisdaten Entwickler Commodore International (1.0 3.1) Haage &am …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”