Restructured Extended Executor | |
Date de première version | |
---|---|
Dernière version | ANSI X3.274 () |
Influencé par | PL/I Algol CMS EXEC (en) EXEC 2 (en) |
Extension de fichier | cmd, bat, exec, rexx, rex et EXEC |
modifier |
Restructured Extended Executor (Rexx) est un langage de programmation, inventé par Mike Cowlishaw, chercheur d'IBM. Il s'appelait initialement REX (Revised EXecutor), mais le sigle était déjà déposé. Langage interprété procédural, il est un des seuls héritiers du PL/I, ou du moins de sa syntaxe.
C'est un langage de script commun à de nombreux systèmes IBM : les mainframes, en particulier VM/CMS où il succédait à EXEC et EXEC 2', puis plus tard MVS/ TSO et z/OS. Il était disponible aussi sous OS/2.
Il dispose d'une version open source, Regina REXX, fournie dans les dépôts de plusieurs distributions Linux. Les interprètes REXX, tant commerciaux qu'open source, sont disponibles sur une vaste gamme de plates-formes et des compilateurs sont disponibles pour toutes les unités centrales IBM.
Sa syntaxe a été conçue dans un but essentiel de faciliter l’apprentissage et la relecture du code.
Voici par exemple un programme REXX (les tabulations ne sont là que pour la lisibilité du source) :
do i=1 to 5 if i=3 then say "Trois" else say i end
Son exécution donne
1 2 Trois 4 5
Autre exemple de programme 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 */
qui peut s'écrire également :
liste_mots="un deux trois quatre cinq";do i=1 to words(liste_mots);say word(liste_mots,i);end
Son exécution donne
un deux trois quatre cinq
Il existe un compilateur Rexx qui permet d'obtenir à la fois des scripts plus stables dans le cas d'une gestion par version, une exécution plus rapide, et une certaine protection contre le vol ou les modifications intempestives du code source.
REXX a donné deux évolutions différentes, mais restées peu utilisées car incompatibles entre elles :
Regina a davantage de succès : c'est une version de REXX en logiciel libre, également utilisée pour programmer des macros destinées à l'éditeur plein écran The Hessling Editor (THE), équivalent de l'éditeur XEDIT de VM/370.