Introduction

publication: 23 février 2023 / mis à jour 16 janvier 2026

Read this page in english

 

Démarrage

Si vous n'avez jamais programmé en langage FORTH, nous vous conseillons cette version:
  github.com/MPETREMANN11/eForth-Windows/blob/main/uEf64-7.0.7.21.exe

Il s'agit d'une version 64 bits, exécutable sous Windows.

Ce programme uEf64-7.0.7.21.exe ne nécessite aucune installation. Si vous avez une alerte Windows, ignorez cette alerte.

La disponibilité de l'interpréteur/compilateur est quasi instantanée:

eForth n'est pas sensible à la casse.

L'interprèteur

eForth est un langage de programmation interactif composé de mots. Les mots FORTH sont l'équivalent de sous-programmes ou de fonctions dans d'autres langages et sont exécutés en les nommant. Bien que eForth soit interactif à la base, l'utilisateur n'a pas besoin d'interagir avec une application embarquée si son mot de niveau supérieur est défini pour s'exécuter automatiquement à la mise sous tension. Voici un exemple d'exécution d'un mot FORTH :

--> decimal 
 ok 
--> 

Cela exécute le mot decimal qui définit la base de représentation décimale des nombres, un format avec lequel vous êtes susceptibles d'être plus familier, à moins que vous ne soyez un étudiant en mécatronique ou en informatique. Maintenant, essayons quelque chose d'un peu plus intéressant en entrant:

2 17 + . 
\ display: 19 ok 

Cette fois, eForth montre plus clairement sa nature interprétative. Un petit programme appelé l'interpréteur externe boucle continuellement, attendant l'entrée du port série. L'entrée est une séquence de chaînes de texte (mots ou chiffres) séparées les unes des autres par un ou plusieurs caractères ASCII vides.

Les chaînes de texte sont interprétées de trois manières seulement: les mots (sous-programme ou fonction noms), numéros ou non définis. L'interprète externe essaie d'abord de chercher le mot du dictionnaire qui contient les mots déjà définis. S'il trouve le mot, il exécute le code correspondant.

Si aucune entrée de dictionnaire n'existe, l'interpréteur essaie de lire l'entrée comme un nombre. Si la chaîne satisfait aux règles de définition d'un nombre, elle est convertie en nombre dans le représentation interne du microcontrôleur, et stocké dans un emplacement de mémoire spécial, appelé le haut de la pile (TOS).

Dans l'exemple ci-dessus, FORTH a interprété 2 et 17 comme des nombres et les a poussés sur la pile. + est un mot prédéfini, tout comme ., ils sont donc recherchés et exécutés. Le mot +(plus) a supprimé 2 et 17 de la pile, les a additionnés et a laissé le résultat 19 sur la pile. Le mot . (point) a supprimé 19 de la pile et l'a envoyé sur le périphérique de sortie standard, ici la fenêtre de eForth. Voici une photo de la pile à travers le processus.

Nous pourrions également travailler en hexadécimal:

hex 
0a 14 * .    \ display: c8 

Si vous souhaitez indiquer explicitement la base d'un nombre, vous pouvez ajouter un sigil aux chiffres du nombre. Par exemple, $10 ou #16 représentent tous la valeur décimale seize.

Si le texte entrant ne peut pas être localisé dans le dictionnaire ni interprété comme un nombre, eForth émet un message d'erreur.

thing  
\ display: ERROR: thing NOT FOUND! 

Enfin, voici le programme classique Hello World!.

: hey 
    ." Hello, World!" 
  ; 

Forth vous permet de produire du texte en utilisant le mot ." tandis que les mots : et ; commencent et terminent le définition de votre propre mot hey. Notez que des caractères blancs sont utilisés pour délimiter chacun des ces mots. Maintenant, tapez hey et voyez ce qui se passe.

hey 
\ display: Hello, World! ok 

Dans le langage FORTH, les mots sont séparés par des espaces blancs - espaces, tabulations et retours à la ligne.

Toute chaîne de caractères affichables peut être un mot: asdf foo jello @W#$ gibbet.

L'interpréteur FORTH est très simple. Il analyse le mot suivant (c'est-à-dire qu'il saute les espaces, puis collecte des caractères jusqu'à ce qu'il voie un autre caractère d'espacement) et l'exécute.

Donc, si vous essayez de comprendre un programme Forth en détail, vous devez regarder chaque mot à tour de rôle et de comprendre ce qu'il fait. Cela semble simple, mais cela vous fera décrocher si vous insistez à vous référer à un algèbre. Allez simplement de gauche à droite, un mot à la fois.


Legal: site web personnel sans commerce / personal site without seling