Interpréteur Logo pour programmer une tortue graphique

Encadrants : 

Occurrences : 

2015

Nombre d'étudiants minimum: 

2

Nombre d'étudiants maximum: 

4

Nombre d'instances : 

1

Logo est un langage de programmation qui fut très populaire dans les années 1980 pour sa fonctionnalité de tortue graphique : le langage permet de décrire, de manière assez simple, des instructions à l'intention d'une tortue qui parcourt un espace de travail. Ainsi, pour dessiner une maison, on peut écrire le programme suivant :

 

POUR carré

 RÉPÈTE 4 [AVANCE 50 DROITE 90]

FIN

 

POUR triangle

 RÉPÈTE 3 [AVANCE 50 GAUCHE 120]

FIN

 

POUR maison

 carré

 AVANCE 50

 DROITE 90

 triangle

FIN

 

Exécuter ce programme dans un interpréteur pour ce dialecte de Logo produira le dessin suivant :


 

Objectif du projet

L'objectif du projet est double : tout d'abord, écrire en utilisant un générateur d'analyseur syntaxique (par exemple, javacc) un interpréteur du langage Logo ; ensuite, traduire les ordres de la tortue graphique en des instructions de dessin pour une bibliothèque de dessin 2D (par exemple, Java 2D) au sein d'une application logicielle graphique (par exemple, en Java Swing).

Les étapes du projet pourront être les suivantes :

  • définition sur papier d'un langage Logo à implémenter, par exemple en s'inspirant de http://fr.wikipedia.org/wiki/Logo_%28langage%29

  • création d'une grammaire EBNF pour ce langage, et implémentation de cette grammaire dans JavaCC

  • réalisation d'une interface graphique pour l'application

  • traduction des ordres Logo en des instructions de dessin 2D par l'interpréteur

  • optimisations des calculs

  • test de l'interface sur des programmes Logo plus ou moins complexes

 

Mots-clés

Logo, dessin graphique, grammaires hors-contexte, Java, javacc, Swing, Java 2D, interpréteur