Qu'est ce que B4IM ?
Le texte suivant est de l'auteur du langage : Astrobe.
B4IM est une version de
4IM écrite en C afin de le
rendre portable et de
permettre une coopération facile avec les OS populaires
(Linux/Windows).
...
Pour être juste, le vocabulaire de base de 4IM a toujours
été conçu de manière
à être aussi indépendant que possible
de la machine ou de l'OS, sans toutefois
que cela n'implique de pénalités en termes de
performances. Cette conception a
permis de reprendre en grande partie les outils qui avaient
été écrits sous DOS
dans cette version Windows/Linux.
La raison de cette "conversion" au C est qu'il y a assez peu d'espoirs
de
parvenir rapidement a quelque chose sous Windows ou Linux sans en
passer par
une librairie C.
....
Comme je l'ai indiqué, les versions Dos, Linux et Windows se veulent compatibles au niveau du vocabulaire de base. Cependant, si ces versions partagent un vocabulaire de base identique certaines versions comporteront des definitions supplémentaires qui leur seront spécifiques. On utilise le terme "B4IM" quand on se réfère à des aspects qui sont spécifiques à la version Linux/Windows.
Principaux apports de cette version
- Mots de 32 bits.
- Interface avec la librairie graphique GraphApp, écrite en C.
- Système d'aide plus complet.
Ci-dessous un commentaire d'Astrobe, tiré d'un échange par courrier électronique :
"La taille s'explique par la présence de la librairie GraphApp, qui permet de faire des applications graphiques ; toutefois, comparée à un système à vocation équivalente commeWish (Tcl/Tk), ou aux autres languages interprétés liés à des librairies graphiques (Ruby,perl, Guile, etc...) 4IM n'a pas à rougir, même s'il propose peut-être moins de fonctionnalités.
Si on enlève la librairie graphique, la taille de l'exécutable tombe à 17Ko!
4IM est à géométrie variable : il est assez facile d'ajouter ou de supprimer des "extensions". Et pour qui connait le C, il devrait être également facile d'en écrire (ce sera encore plus vrai quand j'aurais documenté cet aspect, ce qui est préparation)."
Lancement sous Linux
L'installation a été faite en utilisant les informations contenues dans la page http://4im.atspace.com/installfr.html.J'utilise un environnement graphique (Gnome, à partir d'une Debian Sarge). Afin de pouvoir lancer B4IM, il me faut :
- Ouvrir un terminal graphique.
- Me positionner dans le dossier qui contient B4IM.
- Entrer la commande qui lance l'exécution :
./b4im
: 4IM ( September 2005 ; Forth4IM@netcourrier.com ) .
GraphApp extension
Files extension
Date/Time extension
foreign addresses extension
5321 bytes used
Le système d'aide
Il a été ajouté à 4IM depuis un an et se compose de blocs de texte (restant fidèle en cela à la tradition de forth). Un gros effort a été fait par Astrobe de façon à proposer une documentation simple et claire. Cette documentation est en français.La librairie graphique GraphApp ajoute une fonctionnalité intéressante : il est possible d'ouvrir l'aide dans une seconde fenêtre graphique.
Pour cela, il suffit de taper :
120 LOAD
Un exemple d'utilisation des fonctions graphiques
Le texte suivant a été tapé dans l'éditeur et mémorisé dans le bloc 124 (par 124 ED
) :
10 10 MOVE-TO
X Y 80 + LINE-TO X 80 + Y LINE-TO
X 50 - Y 30 - MOVE-TO X Y 100 + LINE-TO
150 10 MOVE-TO
X Y 150 + LINE-TO
240 160 MOVE-TO
X Y 150 - LINE-TO X 40 + Y 70 + LINE-TO
X 40 + Y 70 - LINE-TO X Y 150 + LINE-TO
124.............................................................
A la fin de la saisie, frapper ESC pour quitter l'éditeur.
Pour obtenir l'exécution du code, frapper
123
LOAD
. (Oui : 123).Cela donne :
Conclusion provisoire
Tout en conservant les acquis de 4IM, B4IM apporte des possibilités intéressantes :- valeurs numériques sur 32 bits.
- fonctionne directement sous Linux (ou Windows) ce qui permet de le faire interagir avec des données de ce système.
- système d'aide en français.
- accès à des extensions écrites en langage C, ce qui se traduit, dans un premier temps, par la possibilité d'utiliser la librairie graphique GraphApp.
Selon que l'on décide d'utiliser ou non les extensions, le langage conservera ou non sa compacité initiale.
A suivre...