Suivez-nous sur X

|
|
|
0,
A,
B,
C,
D,
E,
F,
G,
H,
I,
J,
K,
L,
M,
N,
O,
P,
Q,
R,
S,
T,
U,
V,
W,
X,
Y,
Z,
ALL
|
|
0,
A,
B,
C,
D,
E,
F,
G,
H,
I,
J,
K,
L,
M,
N,
O,
P,
Q,
R,
S,
T,
U,
V,
W,
X,
Y,
Z
|
|
0,
A,
B,
C,
D,
E,
F,
G,
H,
I,
J,
K,
L,
M,
N,
O,
P,
Q,
R,
S,
T,
U,
V,
W,
X,
Y,
Z
|
|
A propos d'Obligement
|
|
David Brunet
|
|
|
|
Test d'ARexx 1.10
(Article écrit par Cédric Beust et extrait d'A-News (Amiga News) - septembre 1989)
|
|
Depuis plusieurs mois déjà un nom se fait de plus en plus entendre dans les milieux concernés de l'Amiga : ARexx. ARexx...
Quel drôle de nom. Pourquoi pas libellule ou papillon ? Est-ce un nouveau fromage ou le dernier tube de la ventriloque
Vanessa Paradis ? N'écoutant que mon courage, j'enfilai mon imper et mes lunettes noires et j'allai mener discrètement
ma propre enquête.
Premier contact
ARexx est un langage programmé par William S. Hawes qui se trouve à mi-chemin du BASIC et du C. Mais sa puissance réside
bien au-delà de ces simples constatations, ainsi que vous allez pouvoir le constater. La disquette unique est livrée
avec un manuel de 150 pages (la version que je possède venant des États-Unis, ledit manuel est en anglais. Je ne sais pas
si une importation française est prévue). L'installation sur disque dur est très simple : il suffit de recopier le contenu
des répertoires c: et libs: et hop, ARexx est fonctionnel.
ARexx a besoin d'un interprète
Avant de pouvoir laisser libre cours à son inspiration dévastatrice, il faut exécuter un petit programme qui reste résident :
rexxmast. Ceci fait, l'écriture des programmes se fait avec votre éditeur favori puis s'exécute directement avec la commande
"rx". Par exemple :
/* Essai */
say "Vive A-News" /* say écrit sur la sortie standard */
|
...que l'on sauve sous le nom "toto" par exemple, puis on exécute "rx toto" et l'affaire est dans le sac. Cet exemple appelle
une remarque : ARexx est un langage interprété (c'est-à-dire que chaque instruction est analysée et exécutée quand son tour vient).
Ceci présente l'immense avantage de pouvoir écrire très rapidement vos programmes, mais en revanche, l'exécution est plus lente.
Ceci dit, les programmes écrits en ARexx n'étant pas fait pour être rapides, ce défaut est rapidement oublié.
ARexx est un sale type
Autre aspect que les basicomaniaques apprécieront, point n'est besoin de déclarer vos variables avant de les utiliser. ARexx
déterminera comme un grand leur type quand vous leur ferez une première affectation (ce type pouvant changer ultérieurement).
Les instructions du genre suivant sont donc autorisées :
/* Programme qui ne fait rien */
i= 1
i= "Y'a d'la joie"
|
L'absence de types dans un langage autorise la programmation sauvage et débridée. Soyez donc vigilant en utilisant ce genre
d'économie au rabais. Mieux vaut garder l'habitude de conserver le même type à une même variable dans un programme.
ARexx se laisse tracer
Dernier point important, le débogage sous ARexx se fait très simplement à l'aide d'une instruction que l'on rajoute directement
dans son programme : trace. Celle-ci permet, en fonction des options qui la suivent, de voir se dérouler pas à pas toutes les
étapes du programme ainsi que les calculs intermédiaires.
ARexx à la loupe
Les autres fonctions (et non pas fonctionnalités, merci !) du langage sont les suivantes : existence de fonctions (procedure, return),
boucles de contrôle (do), test conditionnels (if, then, else), choix multiples (select, when, otherwise), entrée et sortie sur
la fenêtre active (say, echo, push, pull) et gestion très poussée de l'analyse de lignes de commandes (parse).
Ceci pour les instructions standard du langage. Mais il est possible de recourir à d'autres fonctions situées dans les bibliothèques
(et non pas librairies, re-merci !) internes et externes. Il n'y a donc en théorie rien que le C ou l'assembleur puisse faire et
qu'ARexx ne puisse pas (remarque à prendre avec des réserves). La réciproque est fausse. Venons-en à l'intérêt d'utiliser ARexx
plutôt qu'un de ces langages.
ARexx a plein de petits amis
Sur la disquette se trouve un fichier nommé "products" qui contient tous les logiciels sortis à ce jour qui sont compatibles
avec ARexx (ils ne sont qu'un vingtaine mais la liste va certainement s'agrandir). Citons Txed Plus, CPR (le débogueur
de Lattice), CygnusEd, Superbase Professional, etc. Mais que signifie exactement "compatible avec ARexx" ? Cela veut tout
simplement dire que vous pouvez créer vous-même vos fonctions et les rajouter au logiciel en question.
Prenons un exemple avez CPR. Supposons que l'on désire en plus des commandes habituelles une instruction "avail"
qui nous donnerait la mémoire disponible. Sous CPR, l'affichage de quelque chose se fait avec l'instruction "d".
Comme il existe une fonction dans ARexx qui réussit ce difficile exercice (storage()), le programme pourrait se résumer à :
/* Exemple */
'd "' || storage() 'octets libres'
/* Les || signifient concaténation */
|
Il faut maintenant assigner rexx: au répertoire dans lequel on va sauver ce programme que l'on va appeler tout à fait au
hasard "avail.cpr" (la terminaison ".cpr" est indispensable pour que CPR puisse retrouver les commandes qui le concernent.
N'oubliez pas que tous les logiciels compatibles avec ARexx iront chercher leurs macros dans rexx: et ils auront chacun un
suffixe spécifique). Et ensuite, oh miracle, CPR possède une fonction supplémentaire en la personne de "avail"
(n'oubliez pas d'exécuter rexxmast avant).
Bon, là, je ne me suis pas trop fatigué étant donné que j'ai pris cet exemple directement sur la disquette Lattice (eh oui !
ils fournissent des macros ARexx. Il semble cependant y avoir quelques problèmes de compatibilité avec la version actuelle
d'ARexx (1.10) par rapport aux versions précédentes sur certaines commandes). Mais nul doute que la compatibilité avec
ARexx ajoute un argument de poids à la publicité d'un logiciel. Il n'y a aucune limite à ce que vous pouvez écrire.
Signalons pour finir la présence de plein de petits utilitaires dans c: qui simplifient beaucoup la mise au point des programmes.
Par exemple, la commande "tco" ouvre une nouvelle fenêtre dans laquelle iront s'inscrire tous les messages d'erreur détectés
dans votre programme (très utile pour ne pas les confondre avec les sorties du programme lui-même).
Conclusion
La simplicité du langage et ses possibilités de connexion sur d'autres logiciels font d'ARexx un produit promis à un grand
avenir qui va sûrement être appelé à jouer un grand rôle dans le développement et l'utilisation des programmes sur Amiga.
A surveiller attentivement dans les mois qui vont suivre.
Remerciements particuliers à Jean-Charles et Cédric2.
Nom : ARexx 1.10.
Développeur : William S. Hawes.
Genre : langage de script.
Date : 1988.
Configuration minimale : Amiga OCS, 68000, 512 ko de mémoire.
Licence : commercial.
Prix : 39,95 $.
|
|