Responsabilité :
La version de Forth que nous allons utiliser (Turbo Forth),
est une version16 bits. Il est primordial de bien comprendre que la machine
n'est dotée d'aucune intelligence, tout ce qu'elle
sait faire, c'est manipuler des 1 et des 0 très rapidement
et en très grande quantité, et seulement de la façon
dont on le lui a demandé de le faire. La machine ne fait pas d'erreurs,
ses concepteurs, ses programmeurs et ses utilisateurs si. La machine
ne réfléchit pas elle fait bêtement sans comprendre
et sans chercher à le faire (elle ne peut pas). Ainsi si nous demandons
a la machine d'additionner 2 et 3, celà ne signifiera rien
pour elle, par contre elle saura faire cette opération sur les
1 et 0 qui représenteront ces deux nombres.
Revenons a notre langage Forth. La version est 16 bits, cela
signifie que les élements de base manipulés par TF ont une
largeur de 16 bits qui peuvent prendre les valeurs 1 ou 0, autrement dit
les valeurs manipulées par TF varieront entre 0000 0000 0000 0000
et 1111 1111 1111 1111 en binaire, soit pour faire plus court et plus
compréhensible pour nous entre 0 et 2^16 ( l' accent circonflexe
note l'opération exposant) soit 65536 en décimal. Nous
voyons donc que ce langage ne sait manipuler que des entiers, et dans
un intervale restreint. De plus, pour manipuler les entiers négatifs,
les valeurs de 32768 a 65536 représentent les entiers négatifs
de -32768 à -1. Donc pour avoir des résultats cohérents
dans les opérations sous TF, il faut que le résultat soit
compris entre 0 et 32767 pour un résultat positif, et entre -1
et -32768 pour un résultat négatif. Il existe tout de même,
une possibilité en utilisant des opérateurs spéciaux
de travailler sur des nombres 32 bits, dont l'intervalle de valeurs
varie de 0 a 2^32, soit de 0 à 4294967296, et qui permettent
de travailler sur les entiers entre -2147483648 et 2147483647. Pour effectuer
des calculs en virgule flottante, il existe des extensions au langage
de base, qui représentent les nombres en deux parties, la mantisse
et l'exposant, ainsi, par exemple 2,75468 sera représenté
par la mantisse 275468 (entier) et l'exposant -5 (entier), car 2,75468
= 275468*10^-5 (* est le signe de la multiplication), évidement,
cette représentation exige un programme particulier pour effectuer
les opérations, et les opérations sont beaucoup plus lentes
que sur des entiers. Ces considérations sont importantes, car un
obtient quelquefois des résultats qui paraissent incohérents,
à cause de ces limitations, et il faut alors user d'astuce
pour les contourner. Le Forth est un langage qui utilise un vocabulaire
(un ensemble de mots qui ont chacun une fonction particulière),
et une syntaxe (quelques règles grammaticales). Le vocabulaire
de Forth peut être étendu, c'est a dire qu'on peut
lui apprendre des mots nouveaux, en les définissants à partir
des mots existants (c'est d'ailleurs ainsi que l'on programme
en Forth). En ce qui concerne la syntaxe, il convient de noter qu'un
ou plusieurs espaces doivent séparer deux mots, et que l'ordre
des mots est primordial, le premier mot rencontré est exécuté
avant le second, etc... Les mots Forth comprennent de 1 à 31 caractères
( ces caractères doivent avoir un code ASCCI compris entre 1 et
127 - voir plus bas ), y compris les signes de ponctuation et les chiffres,
à l'exception de l'espace, on pourrait ainsi définir
le mot : C'est_la_mere_Michelle_qui_a_p (c'est un peu long pour
être pratique d'emploi,mais c'est possible).
|