Pendant le cours de compilation, vous devez écrire un compilateur. Cette année, le langage que vous devez compiler est appelé Vier.
Le langage Vier
Le langage Vier est un langage orienté-objet relativement simple. Nous vous fournissons la spécification de Vier.
Le document fibonacci.vier
est un programme Vier valide qui calcule — surprise, surprise — la suite de Fibonacci.
Étapes
Le projet est découpé en cinq étapes successives. Vous trouverez plus d'information sur chaque étape sur la page qui lui est consacrée.
- L'étape scanner est l'analyse lexicale (jusqu'au 8 octobre).
- L'étape parser est l'analyse syntaxique (jusqu'au 22 octobre).
- L'étape tree est la construction de l'arbre (jusqu'au 5 novembre).
- L'étape typer est l'analyse des noms et des types (jusqu'au 26 novembre).
- L'étape generator est la production de code (jusqu'au 17 décembre).
Bonus
En parallèle à l'étape generator, vous pourrez implanter des fonctionnalités bonus comme des extensions à votre compilateur. Les points obtenus de cette façon peuvent compenser des points perdus dans d'autres étapes du projet ou à l'examen final mais ne vous permettent en aucun cas d'obtenir plus que 100 points (La note “6”). Il y a trois extensions de difficulté croissante possibles.
- L'ajout de la boucle
while
(2 points-bonus). - L'ajout du test et de la coercition dynamique de type (4 points-bonus).
- L'ajout des variables locales (6 points-bonus).
Les points sont concédés si le code rendu pour l'étape generator implante raisonnablement — dans le sens où il correspond au comportement observé pour la même fonctionnalité dans un langage comme Scala ou Java — la fonctionnalité en question. Le choix des extensions bonus tentées par un groupe est libre, en particulier, il est possible de tenter les trois extensions.
S'il y a une extension différente que vous souhaitez implanter, vous pouvez la proposer à Gilles qui la validera éventuellement comme “officielle”.
Correction du project
La correction du projet a lieu de la façon suivante. Nous aurons étudié et partiellement déverminé vos projets avant le jour de la correction. Le jour dit, nous discutons 10–20 minutes avec chaque groupe sur leur projet. Ceci nous permet en particulier de vous faire part des principaux éléments à corriger pour pouvoir continuer le projet normalement, et de vous faire part de notre opinion sur la qualité et le style de votre code. Le but de cette discussion n'est pas de fixer la note mais de vous aider à progresser dans le projet.
Pour des raisons pratiques, nous vous demanderons de prendre rendez-vous avec un des assistants dans Sygeco.
Travailler en groupe
Travailler en groupe est créatif et intéressant. Ce n'est par contre pas toujours très facile. Pour pouvoir tirer le maximum du projet, voici quelques conseils.
- Ne séparez pas le travail en parties pour des personnes différentes. Comme l'examen porte sur tout le projet, vous ne pouvez pas vous permettre de ne pas connaître le contenu d'une étape.
- Mieux encore: travaillez ensemble sur le même écran, et échangez régulièrement le contrôle le clavier. C'est un des composants de ce que l'on appelle l'eXtreme programming. De cette manière le code, la structure satisfont les deux programmeurs ; le risque d'erreur – de la petite faute bête à la monstrueuse erreur de design — est réduit.
- Choisissez bien votre coéquipier. Vous travaillerez avec lui pendant un semestre: assurez vous qu'il aie le même rythme et style de travail et surtout les même objectifs pour le cours que vous.