Forth | Mise à jour 04-2002 |
|
Forth est un langage interprété déjà ancien, qui fonctionne aujourd'hui sous Windows aussi bien que Linux, pour les plus connus. Il y a eu au cours du temps des versions pour de multiples systèmes. Son fonctionnement repose sur la pile et l'auto-définition du vocabulaire. La pile Le principe de la pile est celui-ci :
Toutes les instructions sont conçues de la même manière : on prend les opérandes sur la pile, qui disparaissent, et le calcul retourne le résultat au sommet de la pile. Par rapport à d'autres langages ce mode de fonctionnement est inhabituel et exige un effort de compréhension et une gymnastique intellectuelle car il faut prévoir d'empiler au bon moment des données qu'il faudra récupérer plus tard. Grâce à ce mécanisme très simple dans son principe, quoiqu'un peu difficile à maîtriser, on obtient des programmes compacts et rapides. L'auto-définition Il existe un vocabulaire de base. Ecrire un programme revient à étendre le vocabulaire en créant des mots à partir des existants. Les mots créés peuvent à leur tour être intégrés dans le vocabulaire de base et viennent ainsi augmenter le langage. C'est aussi le moyen de créer des fonctions portables entre différents environnements, soit en les renommant, soit en les redéfinissant.
Les mots-clés exposés ci-dessous correspondent à l'interpréteur tf83. Pour certains mots, d'autres interpréteurs peuvent avoir des appellations différentes. Manipulation de la pileLa pile étant l'élément essentiel du forth, un certain nombre de fonctions existent pour la traiter.
Forth fournit aussi des mots pour créer des boucles (do, begin), réaliser des tests (if, case) ... Variables
Outre la pile, on peut bien entendu stocker des données sous forme de variables. Le programme demande deux nombres et affiche leur produit. On l'appelle par 2 4 produit
Un programme Forth s'exécute par le biais d'un interpréteur. Celui-ci peut travailler de deux manières :
|
Les quelques exemples ci-dessous permettent d'appliquer les fonctionnalités de Forth. Quatre sont très simples, le dernier est un jeu un peu plus complexe.
Tests de boucles (boucles.fth) Test de boucles do/loop et begin/until. Calcul du carré d'un nombre (carre.fth) Boucles et manipulation de la pile. Tapez les commandes include carre.fth 3 carre1 5 carre2 Division euclidienne de 2 nombres (division.fth) Appel de fonction. Tapez les commandes include division.fth 7 3 division Différentes solutions (variante.fth) Présente plusieurs manières de résoudre différents problèmes de gestion de la pile. Déroulement expliqué point par point. Tapez les commandes include variante.fth variante
Le jeu affiche un panneau de 3x3 cases. Certaines sont vertes, d'autres rouges. Le but est d'obtenir toutes les cases vertes, sauf celle du centre. Pour ceci, en indiquant le n° d'une case, on inverse sa couleur ainsi que celle de ses voisines. Les fonctions mises en oeuvre dans ce programme :
include cases.fth jeucases |
Turbo_forth 83. Console DOS. Ficher tf83.exe. Disponible gratuitement en téléchargement. Kforth. Console DOS Il existe aussi des interpréteurs sous environnement graphique Windows. |