Voila un début d'interface graphique pour apprendre le Forth.
Le projet intègre une machine virtuelle qui compile/interprète le code, il y a encore pas mal de boulot mais on peut commencer à faire des algos.
Le Forth est un langage de programmation à pile dont on peut dire qu'il n'a pas de syntaxe. Une fois qu'on a compris la notation polonaise inverse et l'utilisation des quelques "mots" prédéfinis, on a accès à un système très puissant, totalement personnalisable et réputé très rapide car très proche du code machine.
Ce code n'a aucune prétention, il me permet surtout d'aborder le fonctionnement d'une machine virtuelle.
Concernant Gambas, voila les notions que vous y trouverez (entre autre) :
- Création d’événements de classe, utilisation de Event et Raise.
- Héritage, surcharge de méthodes
- Utilisation de la méthode spéciale _call qui permet d'utiliser un objet comme une fonction et donc de stocker une fonction dans une variable
- Utilisation d'objets de type Class
PS : J'ai commenté le code de la machine virtuelle en anglais, si nécessaire je peux reprendre en français.
PPS : Le fonctionnement de base est inspiré du code python trouvé ici : http://openbookproject.net/py4fun/forth/forth.html
( définition d'une fonction )
: carre
dup *
;
( utilisation )
32 carre
41 carre .s
( les textes sont compilés en adresses mémoire, cf le dictionnaire )
: test
30 < if
" moins de 30 " type
else
" plus de 30 " type
then
cr
;
36 8 - test
( Exemple de "CREATE DOES>" )
: n+m+
create + , does> @ +
;
5 6 n+m+ 11+
3 11+ .