![compileur-logo](https://raw.githubusercontent.com/S-Amiral/Compiler/master/img/Logo.png)
Cahier des charges du projet de semestre du cours de compilateur.
Ce projet se déroule dans le cadre du cours de compilateurs à la Haute École Arc de Neuchâtel.
Le but est de réaliser un petit compilateur et de définir les bases d'un langage. Dans ce cas, il s'agira d'améliorer le compilateur et le langage commencés lors des travaux pratiques réalisés en classe. Des fonctionnalités seront ajoutées au langage et il sera possible d'exécuter le code sur une machine virtuelle à registres et non plus à pile.
Dans cette section sont détaillés les buts du projet.
- Prendre en main Parrot (cf. technologies)
- Ajouter la possibilité d'utiliser des tests sous la forme de clauses
if
. - Ajouter la possibilité d'utiliser des boucles sous la forme de clauses
for
. - Ajouter la possibilité d'utiliser des fonctions :
- Premièrement sous la forme de fonctions sans paramètres
- Deuxièmement sous la forme de fonctions avec nombre de paramètres fixes
- Éventuellement sous la forme de fonctions avec nombre de paramètres variables
- Éventuellement implémenter le retour de résultat depuis les fonctions
- Modifier le compilateur afin de pouvoir compiler pour une machine à registres
- Typer les variables
Dans cette section sont détaillés les technologies utilisées dans le projet.
- Langage :
Python
- Outils :
Python Lex & Yacc
(Ply) - Machine virtuelle :
- Machine à pile : Machine fournie par le professeur.
- Machine à registres : Parrot
[1] | Pedro Costa <pedro.costa@he-arc.ch> |
[2] | André Da Silva <andre.netodasilva@he-arc.ch> |
[3] | Maël Pedretti <mael.pedretti@he-arc.ch> |