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).
- 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 ].
- 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.
- Générer du code pour les expressions:
* expression, & variable, & variable [ expression ] et
expression [ expression ] (quand la première expression est de
type
pointeur).
- 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).
- 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.