Présentation
Le langage de programmation REXX est présent sur la plupart des systèmes d’exploitation.
Langage structuré, simple à apprendre, il offre un jeu d’instruction complet pour la programmation.
REXX est disponible sur tous les AS400.
Caractéristique du REXX
Langage interprété :
— Le REEX n’est pas compilé pour produire un programme exécutable, il est simplement interprété au moment de l’exécution.
— Sur AS400 il s’agira donc d’un membre de fichier source (par exemple QREXSRC.EXEMPLE).
Langage indépendant du système d’exploitation :
— Le REXX est indépendant en grande partie du système d’exploitation sur lequel il s’exécute.
— Il permet de lancer des commandes en les insérant comme une chaîne de caractère. Si cette chaîne ne correspond pas à une syntaxe REXX valable, elle sera passée à l’interpréteur de commande.
La chaîne ‘ping 192.120.125.21′ n’est pas une instruction REXX, elle est simplement passée à l’interpréteur de commande.
Si cette commande s’avérait incorrecte c’est l’interpréteur de commande qui renverrait une erreur (et non pas REXX).
Un langage au format libre :
— Une instruction simple peut enjamber beaucoup de lignes ou des instructions multiples peuvent être écrites sur une ligne simple.
— Les instructions peuvent commencer dans n’importe quelle colonne.
— Des espaces ou des lignes entières peuvent être sautés.
Pas de distinction majuscule, minuscule, ou mélangé.
REXX n’exige pas la numérotation de ligne.
Pas de typage de variable :
— REXX considère toutes les données comme des chaînes de caractères.
— REXX n’exige pas que des variables ou les tableaux soient déclarés comme chaînes de caractères ou des nombres.
REXX exécutera l’arithmétique sur n’importe quelle chaîne de caractères qui représente un nombre valide, y compris ceux dans des formats exponentiels.
MAVAR = ’40’
SAY MAVAR + 9
Affichera 49
Une variable non-initialisée contient son propre nom
« SAY TOTO » affiche TOTO si aucune valeur n’a été attribué à la variable TOTO.
Exemple d’utilisation
Un CL CALLREX reçoit en paramètre un expression à évaluer (par exemple » (435 * 45) / 2 »
Un source REXX EVALEXP interprète cette expression et retourne le résultat (via la LDA).
Cet exemple utilise une particularité intéressante du REXX qui permet d’interpréter une expression.
On suppose ici que l’expression (&ENTREE) est valide et que notre programme REXX est dans la bibliothèque MABIB et dans le fichier source QREXSRC
Le CL utilise la position 201 de la LDA (DTAARA) pour dialoguer avec REXX