Université Bordeaux 1 Département d’Informatique

Maîtrise d’Informatique option : Traduction de Programmes 29 Mai 2000 Durée 3 heures

Tous documents autorisés

1. Décrire des structures de données permettant d’avoir du code efficace pour les appels des méthodes dans un langage orienté objet avec héritage multiple. (Votre réponse donnera des exemples du code intermédiare généré pour des appels ainsi que des attributs permettant de générer ce code.)

2. Je pense faire l’optimisation suivante :

Si une valeur est calculée à l’intérieur d’une boucle et utilisée après la terminaison de la boucle, déplacer le calcul à un nouveau bloc de base qui sera exécuté après la sortie de la boucle.

(a) Quelles sont les conditions sur lesquelles cette optimisation est valable ?

(b) Quelles sont les analyses de flot nécessaires pour tester que ces conditions soient vérifées ?

(c) Comment peut-on effectuer ces analyses ?