Micro Systèmes n°29 mars 1983
Micro Systèmes n°29 mars 1983
  • Prix facial : 20 F

  • Parution : n°29 de mars 1983

  • Périodicité : mensuel

  • Editeur : Société Parisienne d'Edition

  • Format : (203 x 271) mm

  • Nombre de pages : 206

  • Taille du fichier PDF : 168 Mo

  • Dans ce numéro : Forth... un langage sans programmes.

  • Prix de vente (PDF) : gratuit

Dans ce numéro...
< Pages précédentes
Pages : 92 - 93  |  Aller à la page   OK
Pages suivantes >
92 93
En Forth, l'utilisateur définit ses propres structures de données. Dossier LE LANGAGE FORTH code compilé. Les chiffres de 0 à 3 sont, en effet, si fréquemment utilisés que des opérateurs leur ont été attribués, leur rôle étant de gagner de la place en mémoire. Ainsi la définition des mots 0 12 et 3 est :  : 0 0 ;  : 1 1 ;  : 2 2 ;  : 3 3 ; La référence à un mot utilise 2 octets de mémoire pour l'adresse de ce mot. En revanche, la référence à un nombre en comporte 4, car il faut y ajouter l'adresse d'un opérateur qui place effectivement ce nombre sur la pile. Les structures de contrôle Outre les structures DO LOOP et DO +LOOP, Forth possède des opérateurs permettant l'utilisation de boucles du type'tant que'(BEGIN... WHILE... REPEAT) et répétition permanente (BEGIN... AGAIN), auquel il faut ajouter les instructions de choix du type si... alors (IF... THEN) et si... alors... sinon (IF... ELSE... THEN). Pour ces dernières, la syntaxe est plutôt inhabituelle. Du fait de la notation post-fixée, les exécutions conditionnelles s'écrivent ainsi  : < condition > IF < code à exécuter si la condition est vraie > ELSE < code à exécuter si la condition est fausse > THEN Ces opérateurs sont en fait les structures de contrôle de base du langage. Elles sont converties en branchement interne au cours de la compilation, et une fois que leur principe de génération est assi- milé, il est relativement simple de créer ses propres structures. Les structures de données Forth comporte deux structures de données de base  : les variables et les constantes. Les variables sont elles-mêmes décomposées en VARIABLE (variable sur 2 octets) et CVA- RIABLE (variable sur 1 octet). La définition d'une variable s'effectue au moyen de la commande  : O VARIABLE TOTO qui créé une variable appelée TOTO et l'initialise à 0. Lors d'une référence à TOTO, l'adresse de cette variable, et non le contenu, est déposée sur la pile. Pour manipuler les valeurs contenues dans les variables, quatre opérateurs sont définis dans le langage.• @ laisse le contenu de l'adresse définie par la valeur du sommet de pile,• C@ identique à @ mais pour une CVARIABLE,• ! met la deuxième valeur de la pile à l'adresse définie par la première valeur de la pile,• C ! identique à ! mais pour une CVARIABLE. Ainsi pour placer 5 dans la variable TOTO précédemment définie nous ferons  : 5 TOTO ! La récupération de la valeur contenue dans TOTO se réalise par  : TOTO @ Des constantes peuvent être définies aussi, mais à la différence des variables, la référence de la constante donne directement sa valeur. 10 CONSTANT LIMITE crée une constante appelée LI- MITE dont la valeur est 10. Il est possible d'utiliser cette constante comme paramètre du mot SUITE-A. Ainsi, « LIMITE SUITE-A » est équivalent à « 10 SUITE-A ». Mais le Forth ne se contente pas d'outils de ce genre. Sa grande puissance provient en partie de la facilité avec laquelle peuvent être créées de nouvelles structures de données. La création d'une structure d'accueil particulière, comme un tableau ou une chaîne de caractères, comprend deux parties  : une partie implémentation et une partie exécutable. En effet, dans la plupart des langages de programmation classiques, la référence à un élément de tableau génère, lors de la compilation, ou pendant l'interprétation, un processus permettant le calcul de l'adresse réelle. L'utilisateur n'intervient pas et la définition d'un tableau ne nécessite, de sa part, que l'allocation de la mémoire associée. En Forth, rien n'est prédéfini, l'utilisateur qui définit sa structure doit aussi définir, outre la réservation mémoire, les opérations d'accès qu'il désire. Prenons le cas de la création d'un tableau. Nous souhaitons pouvoir définir un tableau TABLE de 20 octets en écrivant (par analogie à VARIABLE)  : 20 TABLEAU TABLE La définition de TABLEAU devra comporter comme partie implémentation :  : TABLEAU + ; L'opérateur termine la définition de la structure et commence la partie exécution, laquelle sera effectuée à chaque référence du mot TABLE. Ici l'adresse du mot est posée sur la pile, puis additionnée à l'indice 92 — MICRO-SYSTEMES Mars 1983
Le langage Forth Dossier placé préalablement sur la pile. Par exemple, placer la valeur 3 au 5e octet de table est réalisé par  : 3 5 TABLE C ! et la lecture de sa valeur par  : 5 TABLE C@ La figure 2 présente un ensemble de définitions Forth. Les commentaires entre parenthèses ne servent qu'à la compréhension du texte et ne sont pas compilés. Le mot TABLEAU permet de définir des structures de données de type vecteur (un tableau à une seule dimension), qui effectuent une vérification de cohérence des indices à l'exécution. Par exemple l'appel au onzième élément d'un tableau dimensionné à dix génèrera l'affichage d'un message « out of range » et l'arrêt de l'exécution. SCR * 27 (TABLEAUX A SIMPLE DIMENSION PH-010183 1 TABLEAU BUILDS DUPC, ALLOT DOES). (DEFINITION DU TABLEAU) 2DUP C@ < IF + ELSE." OUT OF RANGE" ABORT THEN ; 4 10 TABLEAU TABLE 6 REMPLI 10 1 DO I DUP TABLE C ! LOOP 7 REMPLI 8 SOMME (ON ATTEND FOUR CE MOT UN NOMBRE D'OCTET) 9 0 SWAP 1 DO I TABLE C@ + LOOP ; 10 11  : MOYENNE TABLE C@ DUP SOMME SWAP/ ; 12 13.. CALCUL DE LA MOYENNE " MOYENNE. CR 14." CALCUL DE LA SOMME INDEPENDAMMENT " TABLE C@ SOMME. 15 CALCUL DE LA MOYENNE 4 CALCUL DE LA SOMME INDEPENDAMMENT 45 OK Fig. 2. — Un ensemble de définitions Forth et les exécutions qui en résultent. TABLEAU définit une structure de données correspondant à un vecteur de nombres. Le mot TABLE devient ainsi un tableau de dix éléments. Les définitions suivantes servent à l'initialisation puis au calcul, en nombres entiers, de la moyenne et de la somme des valeurs du tableau. C'est l'utilisation de telles structures qui rend si facile le développement d'applications en Forth. Une fois celle-ci écrite et testée, il suffit de réécrire le mot TABLEAU en éliminant les opérations de test à l'exécution pour améliorer les performances du système. La deuxième ligne• initialise un tableau de 10 éléments appelé TABLE. Le mot REMPLI sert à insérer la série de chiffres de 1 à 9. Les procédures SOMME et MOYENNE calculent respectivement la somme des éléments du tableau TABLE et leur moyenne. La figure 3 montre comment créer une structure de type CASE. Les blocks de l'espace mémoire Autour du langage, et afin d'améliorer l'écriture des applications, de nombreux utilitaires se sont greffés puis standardisés. En particulier, un éditeur de texte et une gestion de l'espace mémoire sur disque. En effet, presque tous les systèmes Forth font usage de disques ou disquettes pour la mémorisation des définitions bien que cela ne soit pas, a priori, absolument nécessaire. En Forth, l'espace mémoire est divisé en unités appelées « Blocks » ou « écrans » (screen). Généralement, chaque block contient 1024 caractères. Il est ainsi facile de déterminer le nombre de blocks contenus dans un disque. Une disquette de 160 K peut supporter jusqu'à 160 blocks. Ceux-ci peuvent aussi bien contenir du code compilé que du texte. L'éditeur est employé pour manipuler ce texte sur l'écran. Chaque block est alors divisé en seize lignes de soixante-quatre caractères. De nombreuses commandes pour manipuler cet éditeur sont intégrées au système. 85 LIST, affiche le block n°85 à l'écran. 85 LOAD, charge ce même block et compile les définitions comme si elles étaient entrées au clavier. Forth est avant tout un langage extensible destiné aux programmeurs désirant utiliser un langage structuré de haut niveau qui conserve les capacités d'un Assembleur sans pour cela que les performances du langage soient diminuées. Faut-il le préciser, Forth est un langage performant et compact. De plus, bien que ses détracteurs le confinent souvent à des applications de contrôle de processus, Forth dispose de réelles qualités de traitement de l'information qui lui donnent la possibilité de créer des logiciels de gestion. En effet, dès que l'on a compris Forth, il est assez facile de définir des mots permettant la manipulation d'informations et de fichiers. Mars 1983 MICRO-SYSTEMES — 93



Autres parutions de ce magazine  voir tous les numéros


Liens vers cette page
Couverture seule :


Couverture avec texte parution au-dessus :


Couverture avec texte parution en dessous :


Micro Systèmes numéro 29 mars 1983 Page 1Micro Systèmes numéro 29 mars 1983 Page 2-3Micro Systèmes numéro 29 mars 1983 Page 4-5Micro Systèmes numéro 29 mars 1983 Page 6-7Micro Systèmes numéro 29 mars 1983 Page 8-9Micro Systèmes numéro 29 mars 1983 Page 10-11Micro Systèmes numéro 29 mars 1983 Page 12-13Micro Systèmes numéro 29 mars 1983 Page 14-15Micro Systèmes numéro 29 mars 1983 Page 16-17Micro Systèmes numéro 29 mars 1983 Page 18-19Micro Systèmes numéro 29 mars 1983 Page 20-21Micro Systèmes numéro 29 mars 1983 Page 22-23Micro Systèmes numéro 29 mars 1983 Page 24-25Micro Systèmes numéro 29 mars 1983 Page 26-27Micro Systèmes numéro 29 mars 1983 Page 28-29Micro Systèmes numéro 29 mars 1983 Page 30-31Micro Systèmes numéro 29 mars 1983 Page 32-33Micro Systèmes numéro 29 mars 1983 Page 34-35Micro Systèmes numéro 29 mars 1983 Page 36-37Micro Systèmes numéro 29 mars 1983 Page 38-39Micro Systèmes numéro 29 mars 1983 Page 40-41Micro Systèmes numéro 29 mars 1983 Page 42-43Micro Systèmes numéro 29 mars 1983 Page 44-45Micro Systèmes numéro 29 mars 1983 Page 46-47Micro Systèmes numéro 29 mars 1983 Page 48-49Micro Systèmes numéro 29 mars 1983 Page 50-51Micro Systèmes numéro 29 mars 1983 Page 52-53Micro Systèmes numéro 29 mars 1983 Page 54-55Micro Systèmes numéro 29 mars 1983 Page 56-57Micro Systèmes numéro 29 mars 1983 Page 58-59Micro Systèmes numéro 29 mars 1983 Page 60-61Micro Systèmes numéro 29 mars 1983 Page 62-63Micro Systèmes numéro 29 mars 1983 Page 64-65Micro Systèmes numéro 29 mars 1983 Page 66-67Micro Systèmes numéro 29 mars 1983 Page 68-69Micro Systèmes numéro 29 mars 1983 Page 70-71Micro Systèmes numéro 29 mars 1983 Page 72-73Micro Systèmes numéro 29 mars 1983 Page 74-75Micro Systèmes numéro 29 mars 1983 Page 76-77Micro Systèmes numéro 29 mars 1983 Page 78-79Micro Systèmes numéro 29 mars 1983 Page 80-81Micro Systèmes numéro 29 mars 1983 Page 82-83Micro Systèmes numéro 29 mars 1983 Page 84-85Micro Systèmes numéro 29 mars 1983 Page 86-87Micro Systèmes numéro 29 mars 1983 Page 88-89Micro Systèmes numéro 29 mars 1983 Page 90-91Micro Systèmes numéro 29 mars 1983 Page 92-93Micro Systèmes numéro 29 mars 1983 Page 94-95Micro Systèmes numéro 29 mars 1983 Page 96-97Micro Systèmes numéro 29 mars 1983 Page 98-99Micro Systèmes numéro 29 mars 1983 Page 100-101Micro Systèmes numéro 29 mars 1983 Page 102-103Micro Systèmes numéro 29 mars 1983 Page 104-105Micro Systèmes numéro 29 mars 1983 Page 106-107Micro Systèmes numéro 29 mars 1983 Page 108-109Micro Systèmes numéro 29 mars 1983 Page 110-111Micro Systèmes numéro 29 mars 1983 Page 112-113Micro Systèmes numéro 29 mars 1983 Page 114-115Micro Systèmes numéro 29 mars 1983 Page 116-117Micro Systèmes numéro 29 mars 1983 Page 118-119Micro Systèmes numéro 29 mars 1983 Page 120-121Micro Systèmes numéro 29 mars 1983 Page 122-123Micro Systèmes numéro 29 mars 1983 Page 124-125Micro Systèmes numéro 29 mars 1983 Page 126-127Micro Systèmes numéro 29 mars 1983 Page 128-129Micro Systèmes numéro 29 mars 1983 Page 130-131Micro Systèmes numéro 29 mars 1983 Page 132-133Micro Systèmes numéro 29 mars 1983 Page 134-135Micro Systèmes numéro 29 mars 1983 Page 136-137Micro Systèmes numéro 29 mars 1983 Page 138-139Micro Systèmes numéro 29 mars 1983 Page 140-141Micro Systèmes numéro 29 mars 1983 Page 142-143Micro Systèmes numéro 29 mars 1983 Page 144-145Micro Systèmes numéro 29 mars 1983 Page 146-147Micro Systèmes numéro 29 mars 1983 Page 148-149Micro Systèmes numéro 29 mars 1983 Page 150-151Micro Systèmes numéro 29 mars 1983 Page 152-153Micro Systèmes numéro 29 mars 1983 Page 154-155Micro Systèmes numéro 29 mars 1983 Page 156-157Micro Systèmes numéro 29 mars 1983 Page 158-159Micro Systèmes numéro 29 mars 1983 Page 160-161Micro Systèmes numéro 29 mars 1983 Page 162-163Micro Systèmes numéro 29 mars 1983 Page 164-165Micro Systèmes numéro 29 mars 1983 Page 166-167Micro Systèmes numéro 29 mars 1983 Page 168-169Micro Systèmes numéro 29 mars 1983 Page 170-171Micro Systèmes numéro 29 mars 1983 Page 172-173Micro Systèmes numéro 29 mars 1983 Page 174-175Micro Systèmes numéro 29 mars 1983 Page 176-177Micro Systèmes numéro 29 mars 1983 Page 178-179Micro Systèmes numéro 29 mars 1983 Page 180-181Micro Systèmes numéro 29 mars 1983 Page 182-183Micro Systèmes numéro 29 mars 1983 Page 184-185Micro Systèmes numéro 29 mars 1983 Page 186-187Micro Systèmes numéro 29 mars 1983 Page 188-189Micro Systèmes numéro 29 mars 1983 Page 190-191Micro Systèmes numéro 29 mars 1983 Page 192-193Micro Systèmes numéro 29 mars 1983 Page 194-195Micro Systèmes numéro 29 mars 1983 Page 196-197Micro Systèmes numéro 29 mars 1983 Page 198-199Micro Systèmes numéro 29 mars 1983 Page 200-201Micro Systèmes numéro 29 mars 1983 Page 202-203Micro Systèmes numéro 29 mars 1983 Page 204-205Micro Systèmes numéro 29 mars 1983 Page 206