- Décrire le principe commun des algorithmes d'analyse
syntaxique LR et
les différences entre les algorithmes LR(1), SLR(1) et LALR(1).
Donner un exemple d'une grammaire qui est SLR(1) mais qui n'est
LL(n) pour aucune valeur de n.
- Comment les calculs des attributs peuvent-ils déterminer
que dans
une affectation le type de la partie droite est compatible avec
le type de la
variable à gauche, étant donné que les deux types
dépendent
de diverses déclarations éloignées de
l'affectation?
(Vous pouvez répondre en détail pour un langage sans
déclarations
imbriquées en d'autre déclarations ou en instructions
mais décrire
brièvement comment traiter les cas plus généraux).
- Expliquer pourquoi un appel textuel d'une méthode dans un
langage
orienté objet n'est pas forcément toujours
un appel de la même méthode.
Décrire un système qui permet, de
générer du code correct et
sans trop de surcoût en temps ou espace,
pour des appels de méthodes dans un langage avec héritage
simple.
- On propose d'effectuer une optimisation par laquelle des
utilisations de
registres dans des instructions peuvent être
supprimées si la valeur du registre au moment de
l'exécution
de l'instruction peut être déterminée par le
compilateur.
Quels sont les calculs à effectuer pour trouver des
instructions
et registres avec cette propriété?