Description et documents de support pour le projet de Compilation
Un compilateur pour le langage CTigre.
Ces quelques documents font partie du support pour le projet de Compilation, version pour l'année académique 2005/2006.Résumé
La description du projet de compilation est disponible en PDF ou en Postscript. Dernière mise à jour: 8/10/2005.
Les fichier de support pour le projet sont
disponibles ici
ainsi que plusieurs exemples de programmes correctes et incorrectes de
CTigre ici.
Attention: il vous faut un Gnu Make recent pour utiliser les Makefiles
vus en cours et/ou fournis.
DATES IMPORTANTES:
- Il n'y aura en principe pas de partiel, mais seulement le projet complet, a rendre pour le 4 Janvier 2005 avant midi par e-mail comme détaillé dans l'énoncé du projet (date des soutenance à fixer pour debut javier, en utilisant les agendas partagées pour le groupe un et pour le groupe deux).
- Telechargez sans plus attendre l'énoncé du projet pour vous
familiariser avec le sujet
Le 12/12/05 nous avons vu en cours un exemple complet de compilation qui détaille toutes les phases du compilateur sur un exemple simple: vous trouvez ici en ligne une trace de tout cela.
On utilisera principalement la mailing list du cours pour repondre aux questions sur le projet, mais quelques questions vont aussi trouver réponse sur cette page, donc revenez souvent.
Foire aux questions
Q: "vous donnez dans les fichiers support du projet le code lexer.ml et parser.ml du parseur et lexeur; peut-on les reprendre pour notre projet, ou doit-on produire nous même un parseur et un lexeur?"
R: Le cours de Compilation du Master de Paris 7 ne traite plus de l'analyse lexicale et syntaxique, qui est supposée connue, parce-que traitée en cours en Licence (Analyse Syntaxique et Compilation, ex Programmation 2).On vous fournit donc les fichiers intermédiaires lexer.ml et parser.ml pour vous permettre de construire le compilateur sans avoir à écrire vous même le parseur et le lexeur, et même de travailler sur le projet si vous n'avez jamais suivi de cours sur l'analyse syntaxique.
On ne vous fournit pas les sources de parser.mly et lexer.mll, dont la réalisation fait partie intégrante du projet de Compilation 1.
Q: "L'émulateur SPIM donne un erreur si on utilise des expressions arithmétiques dans la définition des symboles ou dans les modes d'adressage!"
R: L'émulateur Spim originaire n'implemente pas toute la sophistication de l'assembleur MIPS, mais seulement la machine MIPS étendue. Pour pouvoir nous servir de quelque facilités, comme la possibilité d'ecrireframesize_f001=48 frameoffset_f001=16 f001: lw $3 framesize_f001-frameoffset_f001-4($sp)il nous faut une version très legèrement modifiée de SPIM, que vous pouvez obtenir en cliquant ici.