Master Informatique
Option Compilation
TD Mardi 12 avril
Rajout d'un type pointeur

Le compilateur TD10.y admet trois types pour les identificateurs, entier, tableaux (d'entiers) et fonction (entier). On veut ajouter un type pointeur (à un entier).

  1. Modifier la grammaire de façon à accepter des déclarations de variables et paramètres de type pointeur (par * identificateur), et des expressions: * expression, & variable (entier) et & variable (tableaux) [ expression ].
  2. Ajouter à chaque catégorie syntaxique d'expression (sauf les identificateurs) un attribut signalant son type (entier ou pointeur) et détecter des erreurs de typage dans les expressions et les affectations.
  3. Générer du code pour les expressions: * expression, & variable, & variable [ expression ] et expression [ expression ] (quand la première expression est de type pointeur).
  4. Traiter les cas d'addition d'un entier à un pointeur et soustraction de deux pointeurs (comme en C faire les ajustements nécessités par le fait qu'un entier est de 8 octets).
  5. Quand un tableau est passé comme paramètre, la valeur mise sur la pile pour le paramètre doit être un pointeur vers le tableau (sur la pile ou dans la zone statique).




File translated from TEX by TTH, version 3.05.
On 12 Apr 2005, 12:10.