Next: , Previous: , Up: Top   [Contents][Index]


7 Astuces diverses

Du fait de son intégration dans l’environnement Pharo Smalltalk, Dr.Geo recèle quelques génies, nombres de ceux-ci sont cachés à la vue de l’utilisateur. Ce n’est pas tant le souhait d’en restreindre l’accès mais plutôt le souci d’alléger la charge cognitive avec une interface simple. Comme nous allons le voir dans les sections suivantes, ces génies s’invoquent par raccourcis clavier, commandes de menu ou codes Smalltalk.

7.1 Programmation

Dans cette section nous présentons quelques outils à utiliser lors de l’écriture de scripts ou de figures programmées : l’espace de travail, le débogueur, l’inspecteur, etc.

7.1.1 Espace de travail

Pour l’afficher, cliquer sur le fond de l’environnement Dr.Geo puis faire Ctrl-k20.

Un espace de travail ressemble à s’y méprendre à un éditeur de texte. Mais c’est en fait une console d’édition de code Smalltalk : pour écrire, compiler et exécuter du code source, il est bien sûr possible d’y coller un code copié ailleurs. Après l’invocation d’un espace de travail21, y coller le code source de la figure programmée ci-dessous22 :

| sketch function p integral summits |
 
function := [:x | x * x ].
summits := OrderedCollection new.
sketch := DrGeoCanvas new.
p := sketch point: -1 @ 0.
p hide.
summits add: p.
 
-1 to: 1 by: 0.1 do: [:x |
   p := sketch point: x @ (function value: x).
   summits add: p hide].

p := sketch point: 1 @ 0.
summits add: p hide.
 
integral := sketch polygon: summits.
integral color: Color blue.
fig52

Figure 7.1: Votre espace de travail avec le code source collé et son menu contextuel

Pour compiler et exécuter ce code source, il suffit de le sélectionner à la souris et d’invoquer Do it(d) dans le menu contextuel. Ces deux opérations se font également au clavier par un Ctrl-a suivi d’un Ctrl-d. Vous obtenez alors immédiatement le résultat de cette figure programmée, sous la forme d’une figure interactive dans un canevas Dr.Geo.

fig53

Figure 7.2: Résultat de l’exécution du code source : intégrale de la fonction sur [-1 ; 1]

7.1.2 Outil de profilage

Lors de l’exécution d’un code source complexe, lancer celui-ci avec l’option de profilage permet de trouver les goulots d’étranglement. Pour ce faire, dans le menu contextuel invoquer la commande Profile it. Le code source est exécuté, le canevas Dr.Geo affiché et en plus la fenêtre du profileur informe l’utilisateur sur le temps d’exécution du code et des méthodes invoquées. C’est un outil remarquable pour naviguer dans l’arbre d’exécution du code et afficher les méthodes posant problème.

fig54

Figure 7.3: Le profileur Dr.Geo

7.1.3 Débogueur

Dernier raffinement : l’exécution en mode pas à pas du code source. Cela se fait en l’exécutant avec le débogueur, dans le menu contextuel choisir la commande Debug it. Le débogueur est invoqué sur la première ligne, le code s’exécute pas à pas avec le bouton Over. Dans la partie basse à droite, les variables locales et leur contenu est consultable et modifiable. Les autres boutons permettent d’autres raffinements dans l’exécution pas à pas, à vous de les explorer !

fig56

Figure 7.4: Le débogueur Dr.Geo

Comme montré dans une section précédente, le débogueur permet l’exécution en mode pas à pas. Il s’invoque à n’importe quel moment avec le raccourci clavier Alt-. (Alt + point).

En outre, le débogueur s’enclenche également par programmation, directement dans le code source en ajoutant une ligne self halt. Dans notre exemple précédent, nous pouvons modifier le code source comme suit :

...
p:=figure point: -1 @ 0.
p hide.
sommets add: p.

self halt.
 
-1 to: 1 by: 0.1 do: [ :x |
   p:=figure point: x @ (fonction value: x).
   sommets add: p hide].
...

7.1.4 Inspecteur

Avec l’inspecteur, l’utilisateur consulte les attributs d’une instance ou bien le contenu d’une variable.

Dans notre exemple, supposons que nous souhaitions voir le contenu de la collection sommets. Dans ce cas rien de plus simple, nous ajoutons une ligne de code où nous envoyons le message inspect à sommets, l’emplacement où se fait cette invocation n’est pas très important car nous n’avons ni point d’arrêt, ni exécution en mode pas à pas :

...
p:=figure point: -1 @ 0.
p hide.
sommets add: p.

sommets inspect.
 
-1 to: 1 by: 0.1 do: [ :x |
   p:=figure point: x @ (fonction value: x).
   sommets add: p hide].
...
fig57

Figure 7.5: L’inspecteur sur la variable sommets


Footnotes

(20)

Selon votre système d’exploitation, remplacer Ctrl par Alt.

(21)

Contrairement aux génies, vous pouvez invoquer plusieurs espaces de travail.

(22)

Pour coller un texte, essayer avec le raccourci clavier Ctrl-v ou depuis le menu contextuel de l’espace de travail (clic droit de souris).


Next: , Previous: , Up: Top   [Contents][Index]