Gambas France BETA


Pas de compte ? Incription

Dégraf (Débogueur Graphique de Forth)

À propos de ce code

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

Commentaires

Commentaire de Flachy Joe, Le 23/6/2016 à 21:55:46
Un exemple de code Forth
" Bonjour " type cr

( 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+ .
Commentaire de gambix, Le 28/8/2016 à 16:45:14
Le forth .... que de vieux souvenirs ... :-)

Commentaire de gambix, Le 21/11/2016 à 14:59:35
c'était aussi le premier langage de Linus