MISE EN ROUTE

Le langage FORTH a ses adeptes et ses détracteurs. Réputé difficile par ceux qui n'ont fait que le survoler, il est un des langages informatiques les plus performants. Les concepts qu'il manipule, allient la simplicité, l'efficacité et la compacité. Il offre une alternative intéressante aux langages compilés et langages interprétés, car FORTH est à la fois interpréteur et compilateur. Ce sont ces différents aspects que nous vous ferons découvrir dans ce manuel, lequel peut être exploité de deux manières:

-vous ne connaissez rien à FORTH; commencez par la première partie, suivez les chapitres dans l'ordre et exercez-vous à reproduire les exemples proposés sur votre système, d'abord tels quels, puis en introduisant des variantes.

-Vous connaissez un peu FORTH; survolez la première partie et étudiez le fonctionnement détaillé de TURBO-Forth en examinant la seconde partie formant le glossaire. La plupart des mots essentiels à la compréhension du langage sont abondamment commentés et illustrés par des exemples d'utilisation ou d'exécution.

A. Installation sur disque dur.

Vous venez de recevoir vos disquettes contenant le langage TURBO-Forth 83-Standard et les fichiers d'exemples. La première précaution est de copier leur contenu sur d'autres disquettes afin d'éviter tout problème de relecture lors d'utilisations futures. Il n'est pas interdit de faire plusieurs copies, à condition de limiter l'utilisation des copies par l'acquéreur légitime du produit TURBO-Forth. Copie de TURBO-Forth sur disque dur dans le répertoire approprié:

  C: pour passer sur le disque dur
  MKDIR TF83 pour créer le sous-répertoire TF83
  CD   \TF83 pour sélectionner le nouveau sous- répertoire
  insérer la disquette 1 dans le lecteur A
  COPY A:ARC.EXE pour copier le programme de décompactage sur le disque dur
  ARC X A:*.* pour décompacter le contenu des disquettes TURBO
  changer la disquette 1 par la disquette
  2 ARC X A:*.*  
  CD   \ Sélectionner le répertoire racine

Dans ce répertoire, deux fichiers essentiels doivent figurer:

ANSI.SYS
CONFIG.SYS

TURBO-Forth gère l'affichage en générant des séquences de caractères débutant par ESC (ESCape, code 27) et traitées par le fichier ANSI.SYS. Pour que ce contrôle soit opérant, il faut inclure une ligne supplémentaire au fichier CONFIG.SYS: DEVICE = ANSI.SYS On peut facilement contrôler la présence de ces deux fichiers en tapant: DIR *.SYS. Si le fichier CONFIG.SYS n'existe pas, voici comment le créer directement à partir du clavier:

  COPY CON: CONFIG.SYS puis <ret>
  DEVICE = ANSI.SYS puis <ret>
  ^Z puis CTRL-Z

Par contre, si ce fichier existe déjà, vérifiez son contenu par: TYPE CONFIG.SYS Si la ligne contenant DEVICE = ANSI.SYS est absente, rajoutez-la en tapant la commande suivante (pour disque dur seulement): C:   \TF83   \EDIT CONFIG.SYS ce qui a pour effet d'appeler l'éditeur de TURBO- Forth et de charger le fichier config.sys pour modification. Allez en fin de fichier en appuyant sur la touche flèche vers le bas. Rajoutez la ligne DEVICE = ANSI.SYS puis tapez simultanément sur CTRL-K et ensuite CTRL-D. La nouvelle version de CONFIG.SYS se substitue à l'ancienne. Attention, sur certains systèmes exploitant d'autres programmes disposant de leur propre système de gestion d'entrée-sortie et déja implantés dans CONFIG.SYS, il n'est pas nécessaire d'ajouter DEVICE = ANSI.SYS dans le fichier CONFIG.SYS. Il est facile de contrôler la nécessité de rajouter cette ligne en lançant TURBO-Forth en tapant sous DOS :

CD c:   \tf83
TURBO

Si les indications F1 à F8 apparaissent en vidéo inverse, ne modifiez pas CONFIG.SYS. Si vous venez de créer ou modifier le fichier CONFIG.SYS, relancez maintenant votre système d'exploitation en tapant simultanément sur les trois touches marquées CTRL-ALT-DEL. Cette modification ou création du fichier CONFIG.SYS est également conseillée pour les systèmes chargeant le système d'exploitation MS-DOS depuis le lecteur de disquette. Certains systèmes ne gèrent pas correctement les attributs ANSI, soit parce que le contrôle graphique dépend d'une carte spécialisée, soit parce que le DOS est trop personnalisé. Si la modification de CONFIG.SYS n'arrange pas les attributs vidéo, dans ce cas, tapez sous DOS: TURBO ATTRIBUTS OFF et <ret> SAVE-SYSTEM TURBO.COM BYE et <ret> Puis à nouveau sous DOS, la relance de TURBO-Forth affichera un menu sans attributs vidéo.

D. Lancement de TURBO-FORTH.

Le lancement de TURBO-Forth est réalisé en tapant la commande TURBO. L'espace mémoire minimum requis pour travailler avec TURBO-Forth est de 128 Koctets seulement. Mais le mieux n'est pas l'ennemi du bien, et si vous disposez de plus de mémoire vive, ce dont nous sommes quasi-certains, TURBO-Forth ne se sentira que plus à l'aise pour manoeuvrer. Pour lancer TURBO-Forth, si vous n'êtes pas dans le répertoire ou sur le disque contenant TURBO-Forth, faites précéder TURBO par: d:rep   \TURBO d est le disque (de A: à E: le cas échéant) et rep le répertoire contenant TURBO. Exemple, si vous avez installé TURBO comme décrit précédemment, lancez TURBO-Forth depuis le répertoire racine en tapant: C:   \TF83   \TURBO Et vous devez obtenir à l'affichage le menu de TURBO-Forth: Voilà, vous êtes sous le contrôle de TURBO-Forth. Un appui sur la touche de retour chariot provoque l'affichage du message: ok Ce message indique que FORTH est disponible et attend une commande. Il apparaîtra chaque fois que FORTH aura terminé l'exécution d'une commande ou d'un programme. Vous pouvez aussi lancer TURBO-Forth en lui demandant d'exécuter directement une ligne de commande FORTH spécifiée à la suite de TURBO: [d:rep   \] TURBO [commandes FORTH] Exemple: TURBO WORDS BYE <ret> affiche les mots du langage et revient sous DOS.

E. Premières commandes.

La première commande que vous essayerez est WORDS. Ce mot provoque l'affichage de tous les mots FORTH disponibles dans le vocabulaire courant. Tapez WORDS et appuyez sur la touche marquée RETURN (ou RET ou ENTER), vous voyez à l'affichage:
EMPTY MARK HELLO MENU
OPTIONS BYE? VOC<DIR> NEW-EDITOR
ASSIGN$ FUNCTION etc....  

L'appui sur une touche quelconque interrompt momentanément l'exécution de WORDS. Un nouvel appui sur une touche relance le défilement, excepté l'appui sur la touche <ret> qui l'interrompt définitivement [ENTREE]. Les mots que vous voyez défiler à l'exécution de la commande WORDS appartiennent au dictionnaire du langage FORTH. Le dictionnaire est partagé en plusieurs vocabulaires, le vocabulaire principal étant le vocabulaire FORTH.

TURBO-Forth est équipé de nombreux vocabulaires. Un autre mot, DARK, provoque l'effacement de l'écran vidéo. Avec TURBO-Forth, vous pouvez taper les mots contenant des caractères alphabétiques en caractères minuscules ou majuscules: WORDS ou words ou WoRdS aura toujours le même effet.

Le mot BYE vous fait quitter TURBO-Forth et vous renvoie sous DOS. On peut taper plusieurs mots sur une même ligne FORTH, dans la limite de 255 caractères et en respectant la syntaxe du langage. Un mot FORTH est constitué des seuls caractères ASCII compris entre 33 et 127 inclus et la taille des mots valides est comprise entre 1 et 31 caractères maximum, espaces de séparation et retour chariot non inclus. Exemple:

* ?DUP >R # @ VOCABULARY IN-META

sont tous des mots FORTH. Quand vous créerez vos propres définitions, des noms aussi farfelus que ceux qui suivent seront parfaitement valides, sous réserve qu'ils signifient quelque chose pour vous et soient définis:

  () "aeiouy" ET-MAINTENANT-AU-DODO #@[]@# etc...

Lors de la frappe d'une ligne de commandes depuis le clavier, les mots FORTH et leurs paramètres sont séparés par au moins un espace. Rappelez-vous bien de cette simple et seule règle lexicale FORTH: les mots sont séparés par des espaces. S'il y a plus d'un caractère espace entre deux mots, seul le premier caractère espace sera pris en compte par l'interpréteur. Si vous tapez un mot ne figurant pas dans le dictionnaire de TURBO-Forth, un message d'erreur s'affiche:

TTT suivi de <ret>            affiche TTT inconnu

Le mot inconnu est mis en valeur par affichage en mode "vidéo inverse".

Les nombres, bien que n'étant pas définis dans le dictionnaire, sont correctement interprétés. Tout nombre tapé dans le flot d'entrée est stocké dans une zone mémoire appelée PILE DE DONNEES ou pile paramétrique. Exemple:

65 EMIT             affiche la lettre A majuscule.

La valeur numérique 65 est déposée sur la pile de données et correspond au code ASCII d'un caractère affichable ou de contrôle. Cette valeur est traitée ensuite par le mot qui suit ce nombre, EMIT dans notre exemple.

De nombreux mots FORTH admettent en entrée un ou plusieurs paramètres et empilent souvent le résultat sur la pile de donnée. En ce sens, un mot FORTH est assimilable à une procédure ou une fonction. FORTH ne fait pas de distinction entre un mot défini en code machine au sein de son dictionnaire et un mot défini sous une forme plus évoluée. Pour bien vous imprégner de cette notion, abordez chaque nouveau mot comme une boîte noire en tenant compte pour le moment exclusivement des paramètres qui sont éventuellement traités et rendus:

  DARK aucun paramètre en entrée et en sortie
  EMIT un paramètre en entrée
  DUMP deux paramètres en entrée
  + deux paramètres en entrée, un paramètre en sortie
  HERE aucun paramètre en entrée, un paramètre en sortie

La ligne d'entrée des commandes a une capacité de 255 caractères. Ce mode de fonctionnement est appelé INTERPRETATION car toute commande est immédiatement exécutée. Plusieurs commandes peuvent être tapées dans la même ligne:

DARK 255 64 DUMP

effacera l'écran et affichera le vidage hexadécimal de la zone mémoire intra-segment commençant à l'adresse décimale 256 de 64 octets de longueur.

 

F. Première compilation.

TURBO-Forth peut également compiler de nouvelles commandes. En cela, FORTH se démarque de tous les autres compilateurs tels PASCAL, C, COBOL, FORTRAN pour ne citer que les plus connus:

-il interprète des commandes tapées depuis le clavier. Ces commandes peuvent être, à quelques restrictions près, des mots du langage FORTH, des mots définis par l'utilisateur ou des nombres.

-il compile de nouvelles commandes depuis le clavier. Dans un compilateur ordinaire, tels PASCAL, C, COBOL, FORTRAN, on ne peut compiler un programme source qu'à partir d'un fichier préalablement édité et mémorisé en mémoire ou sur disque.

-il interprète des commandes depuis un fichier. A l'instar de certains langages interprétés, tels BASIC, LOGO, dBASE, les commandes peuvent provenir d'un fichier préalablement édité et sauvegardé sur disque.

-il compile de nouveaux mots depuis un fichier. Ces mots peuvent ensuite être exécutés en mode interprétation ou devenirs eux mêmes les primitives de mots définis ultérieurement. On se retrouve dans le cas de figure des compilateurs classiques.

-il peut aussi interpréter ou compiler des commandes depuis une chaîne de caractères. C'est la grande nouveauté de TURBO-Forth et que d'autres langages, dBASE, LISP ou LOGO pour ne citer que ceux-ci, peuvent exécuter. C'est la réentrance de l'interpréteur disponible en interprétation ou dans une définition compilée.

Une action de compilation débute par le mot : (deux- points) et s'achève par le mot ; (point-virgule). Le mot : est suivi par le nom de la nouvelle commande à définir. Pour exemple, soit à définir le mot EFFACE qui aura pour action d'effacer l'écran, tapez:

: EFFACE DARK ; et appui sur <ret>

Cette fois-ci, l'écran ne s'est pas effacé, car DARK est situé dans une définition en cours de compilation. Le nouveau mot EFFACE fait maintenant partie du dictionnaire FORTH, ce que l'on peut aisément vérifier en exécutant WORDS.

EFFACE <ret>     efface l'écran

C'est bien pratique, un langage que l'on peut franciser aussi facilement! : LISTE-FICHIERS DIR ; EFFACE LISTE-FICHIERS Efface l'écran et affiche le contenu du répertoire courant.

: SOIT ;
: A-ADDITIONNER + ;
: ET ;
: A-AFFICHER . ;

SOIT 3 ET 5 A-ADDITIONNER ET A-AFFICHER                 affiche la somme de 3 et 5.

Presque du langage naturel! Dans cet exemple, les mots SOIT et ET sont censés ne rien faire, ce qu'ils font très bien... Retenez cet exemple et épatez vos amis programmeurs qui s'échinent encore sur leurs programmes en BASIC.

Tous les mots ainsi compilés sont ajoutés au dictionnaire et font maintenant partie du langage FORTH au même titre que n'importe quelle primitive déjà définie.

Maintenant, il se peut que vous ne souhaitiez pas conserver le fruit de vos premières expériences. Il y a plusieurs solutions:

-la plus brutale: couper le courant, relancer le DOS, recharger... bon, vous avez compris, on n'insistera pas!

-la moins brutale: appuyer sur CTRL-C et relancer TURBO-Forth, ça va bien cinq minutes, mais ne poussons pas...

-la plus intelligente: se servir de FORGET pour oublier les mots créés.

Le mot FORGET doit être suivi du mot à supprimer du dictionnaire. Tous les mots définis après sa création seront également supprimés. Exemple:

: MOT1 CR ." JE SUIS MOT1" ;
: MOT2 CR ." ET MOI MOT2" ;
: MOT3 CR ." ET POUR FINIR, COUCOU, VOICI MOT3" ;

Je ne vous infligerai pas le résultat de l'exécution de la séquence MOT1 MOT2 MOT3 dont la haute teneur intellectuelle dépasse bien des oeuvres autour desquelles on fait beaucoup plus de publicité. Abrégeons sommairement en opérant une déchirante révision littéraire par la commande:

FORGET MOT2 WORDS

et, oh stupeur, MOT2 et MOT3 ont bel et bien disparu du dictionnaire.

Vous étiez pourtant prévenus. Tout mot détruit ne peut être reconstitué à moins de le retaper depuis le clavier ou en le compilant depuis un fichier.

 

G. L'éditeur de textes.

1. L'éditeur type "WORDSTARTM"

L'éditeur de texte EDIT.COM et EDITERR.MSG fourni dans le module 1 est un programme externe qui peut être appelé depuis TURBO-Forth par appui sur la touche F2 ou en tapant la commande EDIT. Ensuite, tapez le nom du fichier à éditer:

-si le fichier existe, précisez le nom du fichier et son extension; les fichiers sources compilables par TURBO-Forth ont généralement pour extension .FTH.

-si le fichier n'existe pas, tapez sur <ret>; vous êtes de suite sous éditeur.

Une fois sous éditeur, tapez vos définitions. Les commandes de l'éditeur TURBO-Forth sont similaires à celles de l'éditeur TURBO-PascalTM et du célèbre traitement de texte WORDSTARTM.

Déplacez-vous de ligne en ligne par appui sur <ret> après avoir tapé une ligne de texte ou sur <ret> si vous voulez avoir une ligne vide.

Vous pouvez revenir sur le texte déja dactylographié en utilisant les flèches de déplacement de curseur.

Voici un aperçu des principales commandes de l'éditeur de texte:

 
^C
passage à la page écran suivante. Provoque un déplacement vers les 24 lignes suivantes du texte. Sans action si vous êtes en fin de texte.
 
^R
passage à la page écran précédente. Provoque un déplacement vers les 24 lignes précédentes du texte. Sans action si vous êtes en début de texte.
 
^E
remonte le curseur à la ligne précédente. Action similaire à la touche fléchée servant au déplacement du curseur.
 
^X
descend le curseur à la ligne suivante. Action similaire à la touche fléchée servant au déplacement du curseur.
 
^D
déplace le curseur d'une position vers la droite. Action similaire à la touche fléchée servant au déplacement du curseur.
 
^S
déplace le curseur d'une position vers la gauche. Action similaire à la touche fléchée servant au déplacement du curseur.
 
^G
effacement des caractères situés à droite du curseur.
 
^K^R
chargement d'un fichier texte. Le texte peut être une partie de programme provenant d'un autre programme et isolée dans un fichier spécifique.
 
^K^X
sortie de l'éditeur sans sauvegarde du texte.
 
^K^W
sauvegarde du texte sur disque sans sortie de l'éditeur.
 
^K^D
sauvegarde du texte sur disque et sortie de l'éditeur.

Le fonctionnement des autres commandes figure dans le fichier LISEZ.MOI livré avec TURBO-Forth.

2. L'éditeur type "WORDPERFECTTM"

TURBO-Forth dispose d'un second éditeur, entièrement écrit en FORTH et livré avec les fichiers sources dans le module 6.

Cet éditeur nommé WORDPERFORTH peut se substituer à celui livré avec le module 1:

-si vous avez installé TURBO-Forth sur disque dur, copiez EDIT.COM du module 5 dans le répertoire contenant TURBO-Forth; supprimez ensuite le fichier EDITERR.MSG.

-si vous ne disposez de TURBO-Forth qu'en disquette seulement, faites-en une copie, puis remplacez EDIT.COM sur la disquette principale par EDIT.COM provenant de la disquette contenant WORDPERFORTH; supprimez ensuite le fichier EDITERR.MSG.

WORDPERFORTH est un clone simplifié du traitement de texte WORDPERFECTTM. Il est principalement destiné aux programmeurs utilisant utilisateurs de WordPerfect qui désirent éditer de petits fichiers (quelques centaines de lignes) au format ASCII tout en conservant l'essentiel de leurs habitudes. Ce programme n'est pas adapté à une utilisation de type "traitement de textes" mais tout fichier édité par WPF peut, bien sûr, être retraité par WORDPERFECTTM (voir son manuel d'utilisation) ou par tout autre traitement de texte complet. Voici résumées ses caractéristiques qui sont limitées aux seules fonctions d'un éditeur:

- Editeur plein écran
- Fichiers ASCII totalement résidents en mémoire
- Possibilité d'éditer 2 fichiers simultanément
- Recherches et substitutions en avant et arrière
- Gestion de blocs de ligne - Touche de répétition
- Touches macros - Ecran d'aide-mémoire rechargeable
- Sauvegarde des options et macros
- Ergonomie de type WordPerfect

WPF est compilé en TURBO-FORTH-83 STANDARD. Le source complet de WPF se trouve sur la disquette contenant WORDPERFORTH. Le mode d'emploi détaillé de WPF est dans le fichier WPF.DOC également disponible sur cette disquette.

3. Autre éditeur

Si aucun de ces deux éditeurs ne vous convient ou si vous ne désirez pas changer vos habitudes, vous pouvez personnaliser TURBO-Forth avec l'éditeur de votre choix. Supposons que vous ne juriez que par le vénérable EDLIN généralement fourni avec votre machine:

tapez Shift-F6 entrez le nom de l'éditeur: EDLIN.EXE <ret>

Il suffit qu'une copie de EDLIN.EXE soit présente dans le répertoire courant pour que cet éditeur soit l'éditeur officiel de votre TURBO-Forth.

 

 

 

-- hautdepage -- sommaire -- page d'accueil --