Implémenter un langage sur la machine virtuelle Parrot - partie 4
Après avoir vu un premier programme très simple en PIR la dernière fois, on s’attaque aujourd’hui au calcul de la factorielle. C’est pas beaucoup plus compliqué, mais on va employer les registres de la VM Parrot.
La procédure factorial
Ce qui est nouveau, c’est qu’ici j’utilise les registres:
$I0 = n - 1
$I1 = factorial($I0)
result = n * $I1
goto RETURN
En PIR, il n’est pas possible d’écrire directement:
factorial(n - 1)
et encore moins:
result = n * factorial(n - 1)
J’utilise donc les registres pour stocker les résultats temporaires. Ils sont simples à utiliser et leur nombre est illimité.
Il faut noter qu’il n’y a pas d’obligation à utiliser les registres ici. J’aurais aussi bien pu écrire le programme ainsi:
Mais je voulais montrer l’utilisation des registres.
Voilà, même si PIR permet de faire d’autres choses, je pense que j’en sais suffisament sur lui pour commencer à implémenter Naam.
À demain.