samedi 28 septembre 2013

Pourquoi FORTH n'a jamais été populaire

J'ai choisi DIOS FORTH comme langage de programmation pour le VPC-32 pour 2 raisons:

  1. Adapter DIOS FORTH pour le VPC-32 était la solution la plus simple et exigeant le moins de temps.
  2. J'ai toujours été séduit par l'extrême simplicité de la syntaxe du FORTH.
Ceci dit je n'ai jamais vraiment développer de programmes en FORTH bien que j'ai lu les 2 livres écris par Leo Brodie ainsi que celui de Robert Van Loo intitulé Programmer le FORTH aux éditions Marabout. Je me suis amusé avec ce langage et j'en suis resté là. Pourquoi?

Oui le FORTH a un aspect séduisant par son extrême simplicité. On pourrait dire la même chose de la programmation en assembleur. Mais ça demande aussi plus d'effort. Le problème avec le FORTH est qu'il faut continuellement visualiser l'état de la pile des données. Quand on programme en FORTH il faut en quelque sorte faire le travail fait normalement par le compilateur. On empile les paramètres et ensuite on appelle la fonction. Il faut continuellement s'assurer que la pile est balancée.

Voici un exemple comparant une fonction appellée fibo écrite en python et ensuite en FORTH. J'ai encadré en rouge ce que j'ai saisie à l'écran dans les 2 cas.

D'abord on constate que l'écrite de la version FORTH demande moins de caractères mais pour quelqu'un qui ne connais pas le FORTH ce n'est pas plus compréhensible que du chinois.
dup, swap et over sont des mots qui servent à manipuler les valeurs qui sont sur la pile des arguments (données). dup empile une copie de l'élément qui est au sommet de la pile. swap inter change la position des 2 éléments qui sont au sommet de la pile et finalement over crée une copie du deuxième élément et le place au sommet de la pile. Le . lui remplace le print(n) de python. En python toute cette gymnastique est en partie faite par le compilateur et par une affectation à une variable temporaire: tmp=n1 et ensuite on retransfert tmp dans n0. Tout ça est fait en FORTH par des swap, dup et over. En fait c'est plus efficace en FORTH. Plus efficace mais plus exigeant au niveau du mental.

Voilà pourquoi FORTH n'est jamais devenu un langage populaire. Il est certain qu'à force de le pratiquer on devient plus à l'aise avec ces manipulations mais le fait est que l'apprentissage de python ne demande pas un tel effort au programmeur débutant.

En conclusion je suis en train d'étudier les options qui s'offre à moi dans le but de remplacer DIOS FORTH par un interpréteur python. A moins qu'il y est au final suffisamment d'espace dans la mémoire flash pour les deux langages.

Aucun commentaire:

Enregistrer un commentaire