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'ecrire
    framesize_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.

Valid HTML 4.01!