Logo

Michel SIMATIC, Amina GUERMOUCHE et Loïc JOLY

22 mai 2022

1 Introduction

Cet exercice a pour objectif de vous montrer comment entrer dans du code existant.

Il vous propose d’enrichir un mini-interprêteur de langage Logo fourni dans Logo.zip (à exploiter selon la procédure cmake de ce document]).

Une fois que vous avez tout généré, si vous lancez l’exécution de logo.exe , le terminal vous affiche :

logo file delay
        file: Path of the logo program to run
        delay: Delay to allow the user to see how the turtle moves [s]

Sortie de C:\temp\Logo\out\build\x64-Debug\logo\logo.exe (processus 16132). Code : 1.

Dit autrement, ce programme nécessite deux arguments sur la ligne de commande : 1. le nom du programme logo à interpréter. 2. le délai (exprimé en secondes) pour permettre à l’utilisateur de voir la tortue se déplacer.

La section suivante explique comment spécifier ces deux arguments.

2 Lancement d’un programme nécessitant 2 arguments en ligne de commande

Nous souhaitons que logo.exe interprète le programme prog0.logo avec un délai d’une seconde.

2.1 Visual Studio

{
  "version": "0.2.1",
  "defaults": {},
  "configurations": [
    {
      "type": "default",
      "project": "CMakeLists.txt",
      "projectTarget": "logo.exe (logo\\logo.exe)",
      "name": "logo.exe (logo\\logo.exe)"
    }
  ]
}
{
  "version": "0.2.1",
  "defaults": {},
  "configurations": [
    {
      "type": "default",
      "project": "CMakeLists.txt",
      "projectTarget": "logo.exe (logo\\logo.exe)",
      "name": "logo prog0.logo",
      "args": ["resources/prog0.logo", 1]
    }
  ]
}

2.2 CLion

3 Travail à faire

Ce mini-interpréteur logo accepte la définition de procédures (pour le vérifier, exécutez logo sur prog1.logo en mettant le délai à 0 au lieu de 1 si vous voulez que le dessin se fasse plus vite).

Modifiez ce mini-interpréteur logo pour que :

  1. Il accepte le mot-clé REPETE (cf. resources/prog2.logo).
  2. Il génère le graphique dans un fichier au format SVG (Comme il y a du code mal écrit, cela suppose que vous restructuriez le code).

NB : Avant de vous lancer dans ces modifications, il est recommandé :

  1. de faire un diagramme UML des classes de ce mini-interprêteur,
  2. d’exécuter le programme en pas-à-pas avec le débugger pour mieux comprendre son fonctionnement.