Le compilateur Pseudo pascal

Le compilateur Pseudo pascal

Version de démonstration

Une version du compilateur \verb"ppc" complet est installé sur la machine poly pour les architectures "linux xx86".
        ~remy/compil/ppc/ppc
Un sommaire d'utilsation par la commande
        ~remy/compil/ppc/ppc -help
Voici ce qu'elle indique:
Usage:

Prend le nom du fichier source en argument, et deux types d'options.
 * les options capitalisées tracent une partie de l'exécution dans stderr.
 * les autres indiquent le comportement du programme, et contrôle la sortie
dans stdin, comme suit:

  -spim Produit le code spim (option par defaut)
  -i Interprète le programme
  -ic interprète le code intermediaire
  -pp Imprime joliement le programme source
  -ast Montre l'arbre de syntaxte asbtraite
  -ass Montre le code spim avant allocation de registres (sans son prélude)
  -liveness Montre le résultat de liveness
  -talloc Utilise l'algorithme d'allocation trivial
  -AG Geometry de la fenêtre graphique '800x600' par exemple
     Trace au niveau 4.
     Aide en ligne: tapez ? dans la fenêtre graphique.
  -Auto Nombre d'etapes automatiques dans la fenêtre graphique
  -AS Sauvegarde de l'animation dans un fichier 
    (taper '^S' pour sauver une image)
  -AF Choix de la police pour le graphique
  -A Augmente la verbosité de l'allocation de registres
  -4 Utilise seulement les registres a0, v0, ra, s0
  -3 Utilise seulement les registres a0, v0, ra
  -D Incrémente le niveau de déboggage

Par exemple, vous pouvez obtenir l'arbre de syntaxe abstraire d'un source pseudo-pascal avec la commande:
    ~remy/compil/ppc/ppc -pp mon_programme.p
L'utilisation normale pour produire du code spim est
    ~remy/compil/ppc/ppc mon_programme.p > mon_programme.spi
Ou encore, pour tracer l'allocation de registres dans tous ses détails
    ~remy/compil/ppc/ppc -3 -A -A -A mon_programme.p 

Version du cours

Les corrigés des différents tds sont assemblés et rassemblés ici ou dans une archive compressée. Cela contient les sources du compilateur (lire le fichier README) et des exemples de programmes: fact.p, fact2.p, fib.p, tri.p, tri2.p, quick.p, mul.p, mul2.p, bignum.p.

Vous pouvez les utilisez librement pour la réalisation de votre projet.