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 : 88 - 89  |  Aller à la page   OK
Pages suivantes >
88 89
FORTH  : un nom que peu d'informaticiens professionnels connaissent. Pourtant, ce langage de programmation est disponible sur de nombreux microordinateurs  : Apple, ATOM, Commodore CBM 8000, Dragon, TRS 80, VIC 20, CP/M... et offre l'agrément d'emploi d'un langage à la fois interprété et compilé. Le principe est simple et astucieux, l'interpréteur permet d'exécuter immédiatement les ordres entrés au clavier, le compilateur offre la possibilité de créer de nouvelles procédures. Aux Etats-Unis, Forth soulève l'enthousiasme de ses utilisateurs, les rapprochant en une même communauté. Mais ce langage souffre d'être mal compris par les programmeurs. Ignoré par les uns, porté aux nues par les autres, il est en droit d'attendre un accueil plus réaliste et d'être enfin reconnu comme un langage puissant destiné aux programmeurs. créé par Charles H. Moore, il y a une dizaine d'années alors qu'il cherchait à améliorer sa productivité dans son métier de programmeur, Forth a reçu une audience enthousiaste de la part d'un grand nombre d'informaticiens. Ce langage, développé initialement pour des applications de contrôle de processus, trouve aussi son emploi dans le graphisme et la gestion. En réalité Forth n'est qu'un noyau, une boule d'argile, qu'il est facile de modifier et d'améliorer en fonction des besoins de l'utilisateur. Forth possède de nombreuses qualités qui le rendent compatible et intéressant à utiliser dans un environnement micro. En effet, il requiert peu de place mémoire (lui-même tient en moins de 8 K-octets), il est performant car de cinq à vingt fois plus rapide que le Basic et surtout il est extensible  : tous les « mots », les éléments du langage, s'utilisent de la même manière, qu'il s'agisse des primitives de base ou des réalisations plus fines dédiées à une application particulière. Alors pourquoi, avec toutes ses vertus, Forth n'est-il pas plus employé ? Une des premières raisons concerne la difficulté de lecture des programmes Forth. En effet, même pour un programmeur expérimenté et connaissant de nombreux langages de programmation, Forth semble tout d'abord complètement incompréhensible. De la même manière que pour le langage APL, l'utilisateur plonge dans un univers qui lui paraît peu familier. Evidemment cette impression ne dure pas. Après quelques heures passées au clavier (Forth ne s'apprend bien qu'en programmant), le langage devient soudain plus clair, les définitions moins obscures, la syntaxe plus amicale. Cette dernière devient ensuite si naturelle que l'on en vient à se demander pourquoi tant de difficultés avaient été éprouvées au départ. La deuxième réticence provient des nouveaux concepts de programmation mis en jeu. La notion même de programme n'existe plus. Seuls restent les « mots », ces « procédures » de Forth, qui servent aussi bien à la définition des structures de contrôle, des variables et des tableaux, qu'à la création d'applications particulières. Une idée s'impose vite à l'utilisateur  : tout, en Forth, est un « mot ». En outre, sa conception très structurée interdit l'emploi du GOTO. De quoi dérouter les fanatiques du Basic. Cependant tous ces « défauts » disparaissent après l'analyse du langage. Ici la LA NOTION MÊME DE PROG11 88 — MICRO-SYSTEMES Mars 1983
ÂGE FORTH pratique est le meilleur des discours en faveur de Forth. Définir des outils logiciels... met l'écriture de codes très concis grâce au compilateur, tout en gardant l'aspect interactif de l'interpréteur. Comme la plupart des langages applicatifs, Forth travaille en notation polonaise, mais, à la différence du Lisp et de Logo, c'est en notation polonaise postfixée et non pré-fixée  : les opérateurs se placent après les arguments et non avant comme en Logo, ou entre les nombres comme dans la plupart des langages. Par exemple, si l'on veut additionner 12 et 5, on écrira dans un langage de programmation classique  : pile (2) au fur et à mesure de leur apparition et les opérateurs prennent leurs opérandes sur la pile et déposent leurs résultats dans la même pile. Pour les passionnés des calculettes HP, il est bon de signaler que leur langage de programmation a une structure qui est très proche de celle du Forth. Des opérateurs particuliers manipulent les données de la pile pour la réorganiser (comme ROT, SWAP), supprimer des éléments (DROP,...) ou en générer (DUP, OVER). L'expression suivante calcule le carré de 10 grâce à l'opérateur DUP qui duplique la valeur se trouvant sur le sommet de la pile  : Ce langage, classé dans la catégorie des langages de haut niveau, est un ensemble cohérent qui se différencie des langages traditionnels (Basic, Pascal, Fortran). De même que Lisp, Prolog, Smalltalk et autres Logo, il est dit « applicatif », c'est-à-dire qu'il s'agit d'un langage dont la programmation revient à la définition d'outils logiciels à partir de « primitives », les éléments de base du système de programmation (vous trouverez la liste de ces éléments en encadré). Ces 12+5 outils sont alors utilisés pour en En Forth, on écrira  : 10 DUP * créer de nouveaux, et ainsi de 125+ suite, jusqu'à obtenir l'application en elle-même. 2 * (3 + 6) fectue une rotation circulaire sur De même, l'expression Un autre opérateur, ROT, ef- Il n'est plus établi de programmes à proprement parler 2 3 6 + * met de la pile. se traduira en Forth par les trois éléments situés au som- mais des constructions logicielles Voici l'évolution de la pile qui reviennent à étendre le vocabulaire de base du système en tuée avant la multiplication du 1 2 3 4 + 5 ROT L'addition de 3 et 6 est effec- pour l'opération fonction de l'application désirée. résultat par 2, comme sur certaines calculatrices de poche (1). analysée élément par élément  : Toujours inhabituel, Forth est un langage à la fois compilé et Cette manière de pratiquer interprété. L'interpréteur, qui est peut paraître déroutante de Eléments pile en même temps le système d'exploitation, exécute les commanques manipulations, elle s'avère 2 12 prime abord mais, après quel- des tapées au clavier, alors que très simple et très facile d'emploi. 4 1 2 3 4 3 1 2 3 le compilateur sert à la création de nouvelles procédures destinées à être exécutées par la figurent après les nombres. 5 1 2 7 5 En Forth, tous les opérateurs 1 2 7 suite. Cette double modalité per- Ceux-ci sont placés dans une ROT 1 7 5 2 ME N'EXISTE PLUS (1) Pour un complément d'information sur la notation post-lïxée, l'article de B. Vellieux  : Simulation d'une calculatrice utilisant la notation polonaise inversée (numéro 27, Janvier 1983). (2) Pile  : se définit intuitivement comme un assemblage d'éléments dont seul le dernier introduit s'avère visible et accessible. Une pile s'appelle aussi LIFO à cause de l'anglais « Last In First Out'• (dernier entré premier sorti). Mars 1983 MICRO-SYSTEMES — 89



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