Ce projet a été effectué en groupe de 5 élèves durant un mois pendant une période de confinement. Il a pour objectif de compiler un nouveau langage informatique nommé Deca qui s'inspirant du Java. La visée de ce langage est purement pédagogique.
Pour compiler ce langage, la plus grande part du travail résidait dans la gestion de la théorie des langages. En effet, ce sont le vocabulaire et les différentes règles de grammaire permettant d'interpréter les mots clés du code et leurs actions. Pour cela, nous avons utilisé l'outil ANTLR pour gérer le vocabulaire et les règles de grammaires du code.
Puis, un ensemble de classes Java ont dû être développées pour décorer l'arbre représentant le programme Deca. Cette décoration sert à savoir quelles actions (coder en assembleur) le compilateur doit effectuer : affichage, boucle, condition, déclaration de variables, de méthode ou de classe ...
Nous avons utilisé des méthodes de travail agiles pour pouvoir compiler du code de plus en plus développé. Nous avons commencé par implémenter les principes de base du langage comme la déclaration de variables, les fonctions d'affichage, les instructions conditionnelles ...
Puis nous avons développé la partie orientée objet avec la création de classes, de méthodes et la notion d'héritage.
Beaucoup de tests ont dû être nécessaire pour vérifier que chaque nouvelle implémentation permettait toujours de compiler les implémentations précédentes.
Les programmes ne sont pas disponibles étant donné que ce projet sera surement à nouveau proposé l'année prochaine à l'ENSIMAG.