You are here: Tutoriels » rforth1 pour tous

par Jean-Baptiste Mayer

Avant-propos

Cette série d'articles est un tutoriel d'utilisation et de programmation des PIC18F avec la chaine de développement rforth1. Le but de ces articles est d'amener le lecteur à maitriser le langage forth et l'architecture des microcontrôlleurs PIC au travers d'une série d'exemples gradués.

Pourquoi un autre langage?

Nous voulions un langage qui soit adapté à l'embarqué. Aussi, certaines fonctionnalité de langages de plus haut niveau (pensons au C par exemple, et à son opérateur 'addresse' "&") nécessitent d'avoir un adressage uniforme de la mémoire. La définition locale de variables, difficilement contrôlable, est aussi un bon moyen de faire exploser une pile d'appels. Enfin, l'allocation dynamique de mémoire (malloc) était à proscrire vu le peu de ressources disponibles.
En résumé, il nous fallait:
  • Un langage de haut niveau
  • Un langage simple, avec peu de mode d'adressage de la mémoire
  • Un langage souple, afin de s'adapter facilement aux différents contextes
  • Un langage efficace, car nos ressources sont limitées

Pourquoi forth?

forth est un des langages les plus simples qu'il soit. Il est extrêmement simple d'écrire un compilateur ou un interprêteur forth, et le faible nombre de d'adressages rend les optimisations de code beaucoup plus simple à détecter. Enfin, le langage ne définit presque pas de structures de contrôle: la liberté est totale.
forth est également utilisé dans l'industrie dans les applications nécessitant un langage assez complet et léger: dans certains BIOS d'ordinateurs (Sun, Apple), dans des consoles de débuggage (WinDbg), ou encore des applications financières.

Pourquoi rforth1?

Nous avions commencé le développement de nos applications avec un autre compilateur, Pic18Forth. Il utilise une machine virtuelle, qui nous pénalisait beaucoup dans les applications lourdes en calcul. Nous avons en plus remarqué un problème d'architecture dans ce compilateur, qui rendait souvent le programme faux. Plutot que de modifier Pic18Forth, nous avons choisi d'écrire un autre compilateur, qui génère du code natif.
Sinon, rforth1 signifie 'robotics forth, version 1'.