Cours NetRexx

Documentation NetRexx de référence du programmeur gratuitement


Télécharger Documentation NetRexx de référence du programmeur gratuitement

★★★★★★★★★★3.5 étoiles sur 5 basé sur 1 votes.
Votez ce document:

Télécharger aussi :


Documentation NetRexx de référence du programmeur [Eng]

...

Introduction au script et Rexx

Aperçu

Avant d'apprendre le langage Rexx, vous devez considérer l'image plus grande. Que sont les lanières de script? Quand et pourquoi sont-ils utilisés? Quelles sont les forces uniques de Rexx en tant que langage de script, et quels types de problèmes de programmation est-ce qu'il aborde? Existe-t-il des situations où Rexx ne serait pas le meilleur choix de langue?

Ce chapitre place Rexx dans le contexte plus large des technologies de programmation. Le but est de vous donner le contexte dont vous avez besoin pour comprendre comment vous pouvez utiliser Rexx pour résoudre les problèmes de programmation auxquels vous êtes confrontés.

Suite à ce contexte, le chapitre vous montre comment télécharger et installer l'interpréteur Rexx gratuit le plus populaire sur votre ordinateur Windows, Linux ou Unix. Appelé Regina, cet interpréteur open-source fournit une base pour vos expériences avec Rexx au fur et à mesure que vous progressez dans la langue des prochains chapitres. Notez que vous pouvez utiliser n'importe quel interprète Rexx standard pour apprendre Rexx. Donc, si vous avez d'autres interprètes Rexx disponibles, vous pouvez l'utiliser. Nous montrons comment télécharger et installer Regina pour les lecteurs qui n'ont pas déjà installé d'interpréteur Rexx, ou pour ceux qui souhaitent installer un Rexx open-source sur leur PC.

Pourquoi écrire des scripts?

Rexx est un langage de script. Qu'est-ce qui? Alors que la plupart des développeurs prétendent en «savoir un quand ils le voient, une définition précise est insaisissable. Le script n'est pas une discipline clairement définie mais plutôt une tendance directionnelle dans le développement de logiciels. Les langages de script ont tendance à être:

q Niveau élevé Chaque ligne de code dans un script produit plus d'instructions exécutables, ce qui n'est pas le cas.

plus d'â € "qu'une ligne équivalente encodée dans un langage de bas niveau ou â €" traditionnel.

q Langages de collage Les langages de script assemblent différents composants ensemble: des commandes de système d'exploitation, des widgets d'interface utilisateur graphique (GUI), des objets, des fonctions ou des routines de service. Certains appellent des langages de script pour coller les langages. Ils tirent parti du code existant pour une productivité plus élevée.

q Interprété? Les langages de script ne traduisent pas ou ne compilent pas le code source dans le code machine de l'ordinateur avant l'exécution. Aucune étape de compilation ne signifie un développement plus rapide du programme.

q Débogage interactif Les langues interprétées intègrent le débogage interactif. Cela donne aux développeurs un retour rapide sur les erreurs et les rend plus productifs.

q Gestion des variables à Les langages de script de niveau supérieur gèrent automatiquement les variables. Les programmeurs Rexx n'ont pas besoin de définir ou de "déclarer" des variables avant de les utiliser, pas plus qu'ils n'ont besoin d'assigner des longueurs maximales pour les chaînes de caractères ou de s'inquiéter du nombre maximum d'éléments tenir. Le langage de script gère tous ces détails de programmation.

q Variables sans typage â € "Des langages de script puissants comme Rexx déchargent même le programmeur du fardeau de la déclaration des types de données, en définissant le type de données que contiennent les variables. Rexx sous-bat les données par utilisation. Il convertit automatiquement les données si nécessaire pour effectuer des opérations arithmétiques ou des comparaisons. Une grande partie des programmeurs de travaux ménagers effectuant dans les langages de programmation traditionnels est automatisée. Cela déplace le fardeau de la programmation du développeur vers la machine.

...

Les performances du matériel augmentent géométriquement, tandis que la différence de performance entre les scripts et les langages compilés reste constante.

Voici comment le matériel traite les performances des scripts. Le PC IBM original exécutait un processeur 8088 à 4,77 MHz. Il exécute moins d'une centaine de clauses ou de déclarations d'un script Rexx chaque seconde. Les Pentiums actuels exécutent plusieurs millions de clauses Rexx par seconde.

Juste pour le plaisir, ce tableau montre à quel point un script de référence Rexx standard fonctionne sur des PC typiques à intervalles de 5 ou 6 ans. Plus loin dans ce chapitre, nous vous montrerons comment comparer votre propre ordinateur avec les nombres de ce tableau:

L'essentiel est que le programme qui consomme plus d'une heure sur le 8088 s'exécute en une seconde sur un Pentium modéré. Alors que la table ignore les facteurs subtils qui affectent la performance, la tendance est claire. Pour la plupart des projets de programmation, les cycles de négociation pour les coûts de main-d'œuvre ont un sens. Pourquoi ne pas utiliser un outil plus productif qui déplace le fardeau à la machine?

Les avantages en matière d'économie de main-d'œuvre s'étendent au-delà du développement du programme jusqu'à la maintenance et à l'amélioration. Des experts comme T. Capers Jones estiment que jusqu'à 75% des coûts de main-d'œuvre en TI sont consacrés à la maintenance du programme. Un langage de script facile à lire et facile à entretenir comme Rexx permet d'économiser beaucoup d'argent.

Parfois, vous entendrez l'affirmation que les langages de script ne supportent pas le développement de grandes applications robustes et de qualité de production. Il y a des années, les langages de script étaient primitifs et cette accusation sonnait vrai. Mais plus maintenant. Les organisations informatiques développent et exécutent régulièrement de grandes applications écrites en langage Rexx et dans d'autres langages de script. Par exemple, l'auteur a scénarisé deux applications de production de plus de 10 000 lignes. Vous pouvez exécuter une entreprise entière sur des scripts.

Pourquoi Rexx?

La caractéristique distinctive de Rexx est qu'il combine la facilité d'utilisation avec la puissance. Son but est de rendre les scripts aussi simples, rapides, fiables et sans erreur que possible. De nombreux langages de programmation sont conçus pour être compatibles avec les langages plus anciens, les goûts personnels de leurs inventeurs, la commodité des compilateurs-rédacteurs ou l'optimisation des machines. Rexx ignore les objectifs superflus. Il a été conçu dès le premier jour pour être puissant mais facile à utiliser.

Une personne a inventé Rexx et a guidé son développement: Michael Cowlishaw des laboratoires britanniques d'IBM. Cowlishaw a donné à la langue la vision cohérente et la main d'orientation dont les projets logiciels ambitieux ont besoin pour réussir. Anticipant la façon dont la communauté Internet allait coopérer des années plus tard, il a posté Rexx sur le réseau de son époque, IBM VNET, un réseau de dizaines de milliers d'utilisateurs. Cowlishaw a sollicité et répondu à des milliers de suggestions et de recommandations envoyées par courriel sur la façon dont les gens utilisaient Rexx au début. Les commentaires ont permis à Cowlishaw d'adapter Rexx au comportement humain typique, faisant de Rexx un langage vraiment facile à utiliser.

La facilité d'utilisation est essentielle, même pour les développeurs expérimentés, car elle conduit à ces avantages:



q Faible taux d'erreur â € "Une langue facile à utiliser se traduit par moins de bogues par programme. Les langues qui reposent sur la syntaxe arcane, les caractères spéciaux et les symboles, ainsi que les variables par défaut entraînent plus d'erreurs.

q Fiabilité? Les programmes sont plus fiables en raison du taux d'erreur plus faible.

q Code de vie plus longue Les coûts de maintenance déterminent la durée de vie du code. Les scripts Rexx sont beaucoup plus faciles à maintenir que les scripts écrits dans des langages qui reposent sur des caractères spéciaux et une syntaxe complexe.

q Coût réduit Le développement rapide du programme, associé à un faible taux d'erreur et à une grande fiabilité, permet de réduire les coûts. La facilité de maintenance est essentielle car jusqu'à trois quarts des professionnels de l'informatique participent à des activités de maintenance. Le code écrit par d'autres est plus facile à comprendre et à maintenir s'il est écrit en Rexx au lieu de langages basés sur la syntaxe comme les langages shell ou Perl. Cela réduit les coûts de main-d'œuvre.

Productivité plus élevée La productivité des développeurs augmente lorsque la langue est facile à utiliser. Les scripts dans Rexx sont plus productifs que le codage dans des langages compilés de bas niveau ou dans des langages shell basés sur la syntaxe.

q Tests plus rapides Les langages de script interprétatifs se prêtent à des tests interactifs. Les programmeurs obtiennent une rétroaction rapide et peuvent facilement suivre l'exécution du programme. Combiné avec le faible taux d'erreur d'un langage facile à utiliser, cela signifie que moins de temps de test est nécessaire.

q Facile à apprendre - Un langage facile à utiliser est plus facile à apprendre. Si vous avez programmé dans un autre langage de programmation ou de script, vous pouvez rapidement récupérer Rexx.

q Facile à mémoriser Si vous écrivez uniquement des programmes occasionnels, Rexx est fait pour vous. Les langues avec des caractères spéciaux et une syntaxe excentrique vous obligent à revoir leurs règles si vous ne faites qu'écrire de temps en temps.

q Les compétences de transfert â € "Puisque Rexx est facile à travailler, les développeurs trouvent facile de s'adapter aux dif ¬ ¬ ferences de la plate-forme ou aux exigences des différentes interfaces. Rexx dispose d'un standard indépendant de la plate-forme. De plus, de nombreuses interfaces et outils Rexx sont eux-mêmes des produits multiplateformes.

Puissance et flexibilité

Que Rexx est facile à apprendre et à utiliser ne signifie pas qu'il a des fonctionnalités limitées ou est une sorte de «langue du débutant». Rexx est en concurrence, fonctionnalité pour la fonctionnalité , avec l'un des autres principaux langages de script. Si ce n'était pas le cas, ce ne serait certainement pas le langage de script principal pour les mainframes, et il n'aurait pas atteint l'usage répandu dont il jouit aujourd'hui sur tant d'autres plates-formes. Il n'y aurait pas non plus plusieurs centaines de milliers d'utilisateurs de Rexx répartis dans le monde. *

La facilité d'utilisation et la puissance imposent traditionnellement des compromis linguistiques. Il est facile d'obtenir l'un sans l'autre, mais difficile à réaliser les deux. Rexx est spécialement conçu pour combiner les deux. Il atteint cet objectif grâce à ces principes:

q Syntaxe simple Certains langages très puissants reposent largement sur des symboles spéciaux, des comportements par défaut non évidents, des variables par défaut et d'autres raccourcis de programmation. Mais il n'y a pas de règle selon laquelle le pouvoir ne peut être atteint que de cette manière. Rexx évite le complexe «programmation de la syntaxe» et encourage une programmation plus simple et plus lisible basée sur des instructions et des fonctions de mots-clés en anglais.

q Petit ensemble de commandes, avec des fonctions fournissant le pouvoir. Rexx a un petit noyau de seulement deux douzaines d'instructions. Cette simplicité est entourée par la puissance de quelque 70 fonctions intégrées. Une interface standard bien définie permet à Rexx d'appeler des bibliothèques de fonctions externes. Cela vous permet d'étendre la langue vous-même, ce qui signifie que de nombreuses extensions open-source ou bibliothèques de routines sont disponibles gratuitement. Les scripts Rexx utilisent également toute la puissance du système d'exploitation car ils émettent facilement des commandes du système d'exploitation.

q Langage à forme libre - Rexx n'est pas sensible à la casse. C'est un langage de forme libre et c'est à peu près comme pardonner concernant le placement de son texte source comme peut l'être un langage de programmation. Cela permet aux spécialistes de décrire eux-mêmes les programmes par des techniques telles que l'indentation, des commentaires lisibles, des variations de cas, et analogues. Rexx soulage les programmeurs de la question de la syntaxe et de la place et leur permet de se concentrer sur le problème de programmation auquel ils sont confrontés.

q Comportement cohérent et fiable "Rexx se comporte" comme on pourrait le supposer "à chaque occasion. Sa première communauté d'utilisateurs a fourni des commentaires à un «maître développeur» qui a modifié le langage pour se conformer au comportement humain typique. Comme l'indique l'inventeur dans son livre définissant Rexx: «L'utilisateur de la langue a généralement raison.» Rexx a été conçu pour encourager les bonnes pratiques de programmation, puis amélioré par le retour des utilisateurs pour se conformer aux attentes humaines.

q Modularité et programmation structurée Rexx encourage et soutient la programmation modulaire et structurée. Rompre les gros problèmes de programmation en morceaux discrets et restreindre le flux du programme à un petit ensemble de constructions de langage contribue grandement à la facilité d'utilisation et à un faible taux d'erreur lors du développement de grandes applications complètes. Ces principes rendent la simplicité sans compromettre la puissance.

q Moins de règles â € "Mettez les points précédents ensemble, et vous conclurez que Rexx a moins de règles que de nombreux langages de programmation. Les développeurs se concentrent sur leur problème de programmation, pas sur des questions de langage.

q Standardisation «Bien qu'il y ait au moins neuf interprètes Rexx gratuits, huit adhèrent aux normes Rexx. Cela rend vos scripts portables et vos compétences transférables. Une langue standardisée est plus facile à utiliser qu'une version avec de nombreuses variantes. Rexx a deux normes fortes et presque identiques. L'un est défini dans le livre The Rexx Language, ou TRL-2, par Michael Cowlishaw (Prentice-Hall, 1990, deuxième édition). L'autre est la norme de 1996 de l'American National Standards Institute, communément appelée ANSI-1996.

Universalité

Rexx est un langage universel. Il fonctionne sur toutes les plates-formes, des appareils portables aux ordinateurs portables et PC, en passant par les serveurs de toutes sortes, jusqu'aux plus gros ordinateurs centraux. Voici les principales plateformes sur lesquelles s'exécutent les interprètes libres de Rexx:

...

Free ou open-source Rexx fonctionne aussi sur OpenVMS, OpenEdition, BeOS, Amiga OS, AROS, AtheOS / Syllable, QNX (QNX4 / QNX6), SkyOS, et autres. Les interpréteurs Rexx orientés objet s'exécutent sous Windows, Linux, Solaris, AIX et OS / 2.

Les avantages d'un langage universel sont:

q Vos compétences s'appliquent à n'importe quelle plateforme.

q Les scripts s'exécutent sur n'importe quelle plate-forme.

Hereâ € ™ s un exemple. Un site qui réduit ses mainframes aux machines Unix pourrait installer gratuitement Rexx sur les machines Unix. Rexx devient le véhicule pour transférer les compétences du personnel, tout en fournissant une base pour les scripts de migration.

Autre exemple, une organisation migrant de Windows vers la programmation orientée objet (OOP) sous Linux pourrait utiliser Rexx comme point d'entrée multiplate-forme dans OOP. Rexx fonctionne sous Windows et Linux et standard, Rexx procédural est un sous-ensemble de Rexx orienté objet.

Un dernier exemple: une entreprise gère un centre de données avec des mainframes et des serveurs Unix, utilise Windows sur le bureau, et programme des "Pocket PC" pour les agents de terrain. Rexx fonctionne sur toutes ces plateformes, rendant les développeurs immédiatement productifs sur l'ensemble de l'équipement de l'entreprise. Rexx prend en charge la gamme de plates-formes permettant à un mainframer de programmer un ordinateur de poche ou un développeur Windows de créer un script sous Unix.



Un langage de script standardisé, disponible gratuitement sur un large éventail de systèmes, offre une applicabilité et une portabilité de code inégalées.

Applications Rexx typiques

Rexx est un langage à usage général. Il est conçu pour gérer divers besoins de programmation. Sa puissance lui donne la flexibilité de répondre à presque n'importe quel type de problème de programmation. Voici des exemples.

q En tant que «glue» de langue, Rexx a longtemps été utilisé comme langue de colle à haute productivité pour assembler commandes, programmes et composants. Rexx offre une interface de plus haut niveau avec les commandes et les installations du système sous-jacent. Il exploite les services, les fonctions, les objets, les widgets, les programmes et les contrôles.

q Automatisation des tâches répétitives Les scripts Rexx automatisent les tâches répétitives. Vous pouvez rapidement créer de petits scripts pour adapter l'environnement ou faciliter votre travail. Rexx facilite la transmission de com'uns au système d'exploitation (ou à d'autres environnements ou programmes) et réagit aux codes de retour et aux sorties.

q Administration des systèmes - Rexx est un moyen de haut niveau, facile à lire et facile à maintenir pour scripter les tâches d'administration système. De par sa nature, l'administration des systèmes peut être complexe. L'automatisation avec une langue facilement comprise élève l'administration du système à un niveau plus élevé, plus abstrait et plus maniable. Si jamais vous deviez améliorer ou maintenir des scripts d'administration de systèmes, vous seriez reconnaissant s'ils étaient écrits dans Rexx au lieu de certaines des alternatives!

q Extension du système d'exploitation Vous exécutez généralement des scripts Rexx simplement en tapant leur nom à l'invite de commande du système d'exploitation. En écrivant des scripts, vous créez des «commandes» de système d'exploitation qui étendent ou personnalisent le système d'exploitation ou l'environnement de programmation.

q Interfaces d'application • Les scripts Rexx peuvent créer des interfaces utilisateur flexibles pour des applications programmées dans des langages de niveau inférieur ou compilés.

q Les applications portables La standardisation de Rexx et son support multiplate-forme étendu en font un bon choix pour les applications qui doivent être portées sur une gamme de systèmes. Sa lisibilité et sa facilité de maintenance facilitent la mise en œuvre des améliorations multiplateformes éventuellement souhaitées. Par exemple, bien que Rexx soit identique sur toutes les plates-formes, les interfaces varient souvent. La normalisation du langage de script isole les modifications apportées aux interfaces.

q Le prototypage et la programmation exploratoire ... Depuis Rexx soutient le développement rapide, il est idéal pour développer des prototypes, que ces prototypes soient jetables ou révisables. Rexx est également particulièrement adapté pour la programmation exploratoire ou d'autres projets de développement susceptibles d'exiger une révision majeure.

q Programmation personnelle ... Un langage de script facile à utiliser offre la simplicité et le développement rapide indispensables à la programmation personnelle. Les PC et les appareils de poche nécessitent souvent une programmation individuelle.

q Traitement de texte Rexx fournit un traitement de texte exceptionnel. Il s'agit d'un bon choix pour les applications de traitement de texte telles que la construction dynamique de commandes pour des interfaces programmables, la redéfinition de rapports, l'analyse de texte, etc.

q Périphériques portables Les petits périphériques requièrent des interpréteurs compacts faciles à programmer. Rexx est très utile pour les PDA, les Palm Pilots, les Pocket PC et les ordinateurs de poche, ainsi que les téléphones mobiles et intelligents.

q Véhicule de migration Grâce à ses atouts multiplateformes, Rexx peut être utilisé comme un outil de migration pour transférer les compétences du personnel et migrer le code existant vers de nouvelles plates-formes.

q Programmation de macros Rexx fournit un langage macro unique pour les outils de l'environnement de programmation: éditeurs, processeurs de texte, applications et autres langages. Les points forts de Rexx dans le traitement des chaînes de caractères répondent à cette exigence, de même que le fait qu'il peut facilement être appelé comme un ensemble de fonctions utilitaires grâce à son interface de programmation d'application standardisée, ou API.

q Langage intégrable: ANSI Rexx est défini comme une bibliothèque pouvant être appelée à partir d'applications externes par son API standard. Rexx est donc une bibliothèque de fonctions qui peut être utilisée comme utilitaire intégrable à partir d'autres langages ou systèmes.

q Applications mathématiques â € "Rexx effectue des calculs en interne en arithmétique décimale, plutôt que dans l'arithmétique binaire ou à virgule flottante de la plupart des langages de programmation. Le résultat est que Rexx calcule toujours le même résultat indépendamment de la plate-forme sous-jacente. Et, il donne une précision à 999999 décimales! Mais Rexx ne convient pas à toutes les applications mathématiques. Les fonctions mathématiques avancées sont des compléments externes plutôt que des fonctions intégrées pour la plupart des interprètes Rexx, et Rexx effectue des calculs lentement par rapport aux autres langages.

Qu'est-ce que Rexx doesn? Do Do Do

Il y a quelques situations où Rexx n'est peut-être pas le meilleur choix.

Rexx n'est pas un langage de programmation système. Si vous avez besoin de coder au niveau de la machine, par exemple pour écrire un pilote de périphérique ou un autre composant du système d'exploitation, Rexx n'est probablement pas un bon choix. Bien qu'il existe des versions de Rexx qui permettent l'accès direct à la mémoire et d'autres tâches de bas niveau, des langages comme C / C ++ ou assembleur sont plus appropriés. Le standard Rexx ne manipule pas les adresses directes ou relatives, ne change pas d'emplacements de mémoire spécifiques ou n'appelle pas de vecteurs d'interruption PC ou de routines de service BIOS.

Rexx est un excellent outil pour développer un code clair et lisible. Mais il ne peut pas vous forcer à le faire; ça ne peut pas te sauver de toi-même. Le chapitre 12 discute «Rexx avec style» et présente des recommandations simples pour écrire un code clair et fiable.

Les langages de script consomment plus de cycles de processeur et de mémoire que les langages compilés traditionnels. Cela affecte quelques projets. Un exemple est une transaction fortement utilisée dans un système de traitement transactionnel en ligne à haute performance (OLTP). L'exécution constante de la même transaction peut faire en sorte que le coût de la main-d'oeuvre est important pour le développer dans un langage compilé de niveau inférieur afin d'optimiser l'efficacité de la machine. Un autre exemple est un programme fortement computationnel dans la recherche scientifique. Le calcul numérique continu peut rendre utile l'optimisation des cycles du processeur via un compilateur orienté calcul.

Notre profession a atteint le consensus que pour la plupart des applications, les langages de script sont assez rapides. Pourtant, ils sont aussi beaucoup plus productifs. C'est pourquoi les scripts sont l'une des principales tendances logicielles de la décennie.

Si vous êtes intéressé à lire plus loin sur la tendance vers le script, ces sources faisant autorité le résument. La dernière liste est une étude formelle qui compare la productivité et l'utilisation des ressources pour Rexx, C, C ++, Java, Perl, Python et Tcl:

John Ousterhout, «Scripting: Programmation de niveau supérieur pour le 21ème siècle», IEEE Computer, mars 1998. David Barron, Le monde des langages de script, NY: Wiley, 2000.

Lutz Prechelt, â € "Une comparaison empirique de sept langages de programmation, â €" IEEE Computer (33:10), 2000.

La Figure 1-2 résume les types de problèmes de programmation auxquels Rexx est le mieux adapté ainsi que ceux pour lesquels ce n'est peut-être pas le meilleur choix.



51