Cours Fortran les variables et constantes numériques

VARIABLES ET CONSTANTES NUMÉRIQUES

FORTH offre, comme la plupart des langages de haut-niveau, la possibilité de manipuler des variables et des constantes par un nom symbolique, choisi par le programmeur. Par exemple, pour créer une constante numérique de nom LONG et de valeur 365, nous taperions ceci : 365 CONSTANT LONG Ceci a pour conséquence de créer une définition de nom LONG dans le dictionnaire. On peut d’ailleurs vérifier par WORDS qui va afficher les mots contenus dans le dictionnaire (en commençant par les derniers définis). Le fait d’invoquer LONG amènera alors la valeur 365 sur la pile. Pour créer une variable de nom AGE : VARIABLE AGE Une définition de nom AGE est alors crée dans le dictionnaire, et son invocation amènera sur la pile, non la valeur de la variable, mais l’adresse de cette valeur. Deux mots vont nous permettre de déposer une valeur à cette adresse, ou à l’inverse de la lire. Ce sont : @ (fetch) ( adr — n ) et ! (store) ( n adr — ) Par exemple : 24 AGE ! ( initialise la variable AGE à la valeur 24 ) AGE @ . ( lit la valeur de AGE et l’affiche ) De ceci, nous pouvons tirer 2 conclusions importantes… La première est que tout en manipulant sur la pile des valeurs entières codées sur 16-bits, l’utilisation qui en faite par différents mots permet de les considérer comme des valeurs, des adresses mémoire, etc. Remarquons au passage que bien que manipulant l’adresse de la variable, nous pouvons parfaitement ignorer où elle se situe physiquement en mémoire : les mots @ et ! rendent transparents les accès à une variable. La deuxième est que, à partir d’un mot FORTH (ici VARIABLE et CONSTANT), nous avons crée d’autres mots dans le dictionnaire. Les mots VARIABLE et CONSTANT seront appelés des MOTS GÉNÉRATEURS. FORTH offre ainsi la possibilité remarquable de se définir ses propres mots générateurs. Pour cela, il faut donner une réponse aux 2 questions suivantes :
• Que faire lors de la création du mot dans le dictionnaire ?
• Que faire lors de l’invocation des mots générés ? Ceci nous permet de dire que le contexte FORTH nous permet d’écrire un compilateur (ou plutôt des compilateurs… ) de manière très simple, en éliminant tous les problèmes syntaxiques qui peuvent se poser dans un langage compilé traditionnel.

CRÉONS D’AUTRES MOTS FORTH

Supposons que nous désirions créer un mot FORTH qui calcule le complément à 100 d’une valeur donnée sur la pile. La définition en serait la suivante :
COMPLEMENT ( n 1 — n2 ) 100 SWAP – ; Nous vous conseillons de regarder dans le manuel de référence de zFORTH le fonctionnement des mots suivants : ( SWAP – ; Si vous ne comprenez toujours pas, laissez tomber le FORTH et revenez à votre LSE chéri… Le rôle du : est de créer l’entête du mot COMPLEMENT dans le dictionnaire (avec le chaînage aux mots précédents), puis de faire basculer le système en état COMPILATION. Résumons le fonctionnement de l’interprète FORTH en état compilation (pour chaque mot qui a été isolé) : rechercher le mot dans le dictionnaire si trouvé alors | si mot immédiat alors | | l’exécuter | sinon | « compiler » son adresse au sein de la définition encours de création sinon tenter la conversion en binaire (ASCII->binaire) si succès alors | compiler » CLIT, LIT ou DLIT et la valeur sur 8, 16 ou 32 bits sinon | générer l’erreur-système #0 (« mot non trouvé et nombre invalide ») Analysons, à l’aide du schéma suivant, la structure des mots dans le dictionnaire, et le code généré par le compilateur FORTH : Nous ne saurions trop vous engager de disséquer soigneusement ce petit programme sans prétention, manuel de référence de zFORTH et « glossaire rapide » en mains..

Cours gratuitTélécharger le cours complet

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *