Restructured Extended Executor

Restructured Extended Executor
Data pierwszej wersji 1979
Ostatnia wersja ANSI X3.274 (1996)
Wpływem PL / I
Algol
CMS EXEC ( en )
EXEC 2 ( en )
Rozszerzenie pliku cmd, bat, exec, rexx, rex oraz EXEC

Restructured Extended Executor ( Rexx ) to język programowania wynaleziony przez badacza IBM Mike'a Cowlishawa. Początkowo nosił nazwę REX ( R evised EX ecutor ), ale akronim został już zarejestrowany. Proceduralny język interpretowany jest jednym z nielicznych spadkobierców PL / I , a przynajmniej jego składni .

Jest to język skryptowy wspólny dla wielu systemów IBM: mainframe'ów , w szczególności VM / CMS, gdzie zastąpił EXEC i EXEC 2 ' , a później MVS / TSO iz / OS . Był również dostępny pod OS / 2 .

Ma wersję open source , dostarczaną w repozytoriach kilku dystrybucji Linuksa . Tłumacze REXX, zarówno komercyjne, jak i open source , są dostępne na wielu różnych platformach, a kompilatory są dostępne dla wszystkich procesorów IBM.

Jego składnia została zaprojektowana z podstawowym celem ułatwienia nauki i ponownego czytania kodu.

Oto na przykład program REXX (zakładki są tylko dla czytelności źródła)  :

do i=1 to 5 if i=3 then say "Trois" else say i end

Jego wykonanie daje

1 2 Trois 4 5

kolejny przykład programu REXX:

liste_mots="un deux trois quatre cinq" /* liste des 5 premiers chiffres */ do i=1 to words(liste_mots) /* boucler pour chacun des mots de liste_mots */ say word(liste_mots,i) /* Afficher le "i"eme mot */ end /* fin de la boucle */

który można również zapisać:

liste_mots="un deux trois quatre cinq";do i=1 to words(liste_mots);say word(liste_mots,i);end

Jego wykonanie daje

un deux trois quatre cinq

Zasady

  1. składnia bardzo zbliżona do PL / I  ;
  2. systematyczne używanie małych liter (czytanie o 30% szybciej, według jego twórcy Mike'a Cowlishaw);
  3. bezużyteczny znak końca wiersza (z wyjątkiem sytuacji, gdy chcesz oddzielić kilka instrukcji w tej samej linii);
  4. brak słów zastrzeżonych;
  5. no {} ani []. Indeksowanie odbywa się za pomocą punktu kwalifikacyjnego, który umożliwia indeksowanie numeryczne lub ciąg znaków (hash). Przykłady: service.3095 lub rocznica.boss;
  6. bez wskazówek;
  7. wymaganych kilka nawiasów;
  8. gramatyka intuicyjna (patrz przykład powyżej);
  9. standardowe operacje warunkowe ( do i = …, do forever , while / do i do until );
  10. system zarządzania wyjątkami bardzo łatwy w obsłudze dzięki aktywacji sygnału na… .
  11. instrukcja parse umożliwia dekompozycję ciągów strukturalnych na ich podstawowe elementy w bardziej czytelny (ale także mniej zwięzły) sposób niż wyrażenia regularne .

Istnieje kompilator Rexx, który pozwala uzyskać jednocześnie stabilniejsze skrypty w przypadku zarządzania wersjami, szybsze wykonywanie i pewną ochronę przed kradzieżą lub niezamierzonymi modyfikacjami kodu źródłowego.

Pochodne

REXX dał dwie różne ewolucje, ale był rzadko używany, ponieważ był niekompatybilny między nimi:

Regina odnosi większy sukces: jest to darmowa wersja oprogramowania REXX , używana również do programowania makr dla edytora pełnoekranowego The Hessling Editor ( THE ), odpowiednik edytora XEDIT w VM / 370 .

Zobacz też

Link zewnętrzny