SlideShare ist ein Scribd-Unternehmen logo
1 von 22
Downloaden Sie, um offline zu lesen
Explorations Visuelles
de
Programmes
Françoise Balmas
LIASD – Université Paris 8
Club Qualimétrie – Paris – 10 juin 2008
• Expériences de visualisation
• Contexte de recherche
– Exploration de programmes
– Mise au point des outils
• 3 Exemples
• Harald Wertz, Rim Chaabane
Foo / Series
• 33 LOC (Lisp), 8 fonctions
• Enseignement
• Compréhension de programmes
• Très difficile
(define (foo s)
(foo2 1 (nc s) s))
(define (foo2 p m s)
(unless (> p m)
(rec p nil s p)
(foo2 (+ p 1) m s) ))
(define (rec x sol s p)
(if (= x 0)
(im s sol p)
(rec (- x 1)
(cons (kamm (nthcdr (- x 1) s) p) sol) s
p)))
(define (kamm s p)
(when (number? (nth p s))
(kamm2 (- (nth p s) (car s)) (nthcdr p s) p) ))
(define (kamm2 inc s p)
(cond
((null? (and s (number? (nth p s)))) inc)
((= inc (- (nth p s) (car s)))
(kamm2 inc (nthcdr p s) p))
(t nil)))
(define (nc l)
(if (and l (number? (car l)))
(+ 1 (nc (cdr l)))
0))
(define (im l sol p)
(unless (member nil sol)
(im2 (length sol) (length l) sol p l)))
(define (im2 lsol ll sol p l)
(set-cdr! (last sol) sol)
(printf "--> : %on"
(calcule 0 sol lsol ll p l)) )
(define (calcule n sol lsol ll p l)
(unless (>= n ll)
(cons (+ (nth (% n lsol) l)
(* (/ n p) (car sol)))
(calcule (+ n 1) (cdr sol) lsol ll p l))))
+1 +1
(foo '(1 2 1 3 X X))
+0 +0
Succes (0 1) pas 2 --> (1 2 1 3 1 4)
-1
(foo '(1 2 1 3 1 4 X X X X))
+2
+3
Succes (0 1) pas 2 --> (1 2 1 3 1 4 1 5 1 6)
Succes (2 -1 3) pas 3 --> (1 2 1 3 1 4 5 0 7 7)
(foo '(1 2 4 8 16 X X))
Echec
Robot virtuel
• 1600 LOC (Lisp), 143 fonctions,
17 macros, 18 escape
• Enseignement
• Vérification
• Complexe car développé à plusieurs
périodes, parties réutilisées
(createTable 4 4)
(creObjet 'a 'boite 'taille '(2 2 3))
(creObjet 'b 'cube 'taille 2)
(creObjet 'c 'block 'taille '(1 2))
(creObjet 'd 'block 'taille '(2 1))
(mapc '(e f g h) 'creObjet)
(showTable)
la Table :
a a b b
a a b b
c c d e
f g d h
(pose-sur 'a 'b)
(pose-sur 'd 'c)
(pose-sur 'd 'Table)
(pose-dans 'c 'a)
(pose-dans 'd 'a)
(showSur)
a sur b
c dans a
d dans a
(showTable)
la Table :
nil nil b b
nil nil b b
nil nil nil e
f g nil h
Sudoku
• 3300 LOC (Tcl/Tk), 110 procédures
• Enseignement
• Maintenance, refactoring
• « Legacy » car développé en plusieurs
étapes, parties presque redondantes
Expériences d’exploration visuelle
• Pistes pour
– Observer des comportements inattendus
– Détecter des bugs
– Suggérer des optimisations
– …
• A valider avec d’autres approches

Weitere ähnliche Inhalte

Was ist angesagt?

Need it help in Operating System quiz(computer language) and in some course
Need it help in Operating System quiz(computer language) and in some courseNeed it help in Operating System quiz(computer language) and in some course
Need it help in Operating System quiz(computer language) and in some courseDouria Zohbi
 
Calcul vent selon l'eurocode en excel
Calcul vent selon l'eurocode en excelCalcul vent selon l'eurocode en excel
Calcul vent selon l'eurocode en excelHani sami joga
 
12 quelques prédicats prédéfinis de swi
12  quelques prédicats prédéfinis de swi12  quelques prédicats prédéfinis de swi
12 quelques prédicats prédéfinis de swiSiham Rim Boudaoud
 
INVERSE TRIGONOMETRIC FUNCTIONS
INVERSE TRIGONOMETRIC FUNCTIONSINVERSE TRIGONOMETRIC FUNCTIONS
INVERSE TRIGONOMETRIC FUNCTIONSsumanmathews
 

Was ist angesagt? (8)

Need it help in Operating System quiz(computer language) and in some course
Need it help in Operating System quiz(computer language) and in some courseNeed it help in Operating System quiz(computer language) and in some course
Need it help in Operating System quiz(computer language) and in some course
 
Calcul vent selon l'eurocode en excel
Calcul vent selon l'eurocode en excelCalcul vent selon l'eurocode en excel
Calcul vent selon l'eurocode en excel
 
Exercice dérivabilité
Exercice dérivabilitéExercice dérivabilité
Exercice dérivabilité
 
12 quelques prédicats prédéfinis de swi
12  quelques prédicats prédéfinis de swi12  quelques prédicats prédéfinis de swi
12 quelques prédicats prédéfinis de swi
 
OpenLayers 3
OpenLayers 3OpenLayers 3
OpenLayers 3
 
Exercice primitives
Exercice primitivesExercice primitives
Exercice primitives
 
INVERSE TRIGONOMETRIC FUNCTIONS
INVERSE TRIGONOMETRIC FUNCTIONSINVERSE TRIGONOMETRIC FUNCTIONS
INVERSE TRIGONOMETRIC FUNCTIONS
 
Employee c++
Employee c++Employee c++
Employee c++
 

Ähnlich wie 20080610 04 - Explorations visuelles de programmes

Introduction Clojure - Geneva JUG - Octobre 2012
Introduction Clojure - Geneva JUG - Octobre 2012Introduction Clojure - Geneva JUG - Octobre 2012
Introduction Clojure - Geneva JUG - Octobre 2012Pablo Tamarit
 
ALF 11 - Diagramme de flux de contrôle et WebAssembly
ALF 11 - Diagramme de flux de contrôle et WebAssemblyALF 11 - Diagramme de flux de contrôle et WebAssembly
ALF 11 - Diagramme de flux de contrôle et WebAssemblyAlexandru Radovici
 
Programmation fonctionnelle
Programmation fonctionnelleProgrammation fonctionnelle
Programmation fonctionnelleGeeks Anonymes
 
SdE 2 - Langage C, Allocation de memoire
SdE 2 - Langage C, Allocation de memoireSdE 2 - Langage C, Allocation de memoire
SdE 2 - Langage C, Allocation de memoireAlexandru Radovici
 
traitement-du-signal-avance.pptx
traitement-du-signal-avance.pptxtraitement-du-signal-avance.pptx
traitement-du-signal-avance.pptxNouzhaBoukouba1
 
Lattice Boltzmann sur architecture multicoeurs vectorielle - Une approche de ...
Lattice Boltzmann sur architecture multicoeurs vectorielle - Une approche de ...Lattice Boltzmann sur architecture multicoeurs vectorielle - Une approche de ...
Lattice Boltzmann sur architecture multicoeurs vectorielle - Une approche de ...Joel Falcou
 
TP3: Comportement Temps Réel de l'Agent Perception
TP3: Comportement Temps Réel de l'Agent PerceptionTP3: Comportement Temps Réel de l'Agent Perception
TP3: Comportement Temps Réel de l'Agent PerceptionSaid Benaissa
 
Inverse trigonometric functions ii
Inverse trigonometric functions ii Inverse trigonometric functions ii
Inverse trigonometric functions ii sumanmathews
 
Présentation Javascript à l'ESI (Alger)
Présentation Javascript à l'ESI (Alger)Présentation Javascript à l'ESI (Alger)
Présentation Javascript à l'ESI (Alger)Dr Samir A. ROUABHI
 
Traitement des données massives (INF442, A4)
Traitement des données massives (INF442, A4)Traitement des données massives (INF442, A4)
Traitement des données massives (INF442, A4)Frank Nielsen
 
Distances sémantiques dans des applications utilisant le web sémantique
Distances sémantiques dans des applications utilisant le web sémantiqueDistances sémantiques dans des applications utilisant le web sémantique
Distances sémantiques dans des applications utilisant le web sémantiqueFabien Gandon
 
Théorie de l'information
Théorie de l'informationThéorie de l'information
Théorie de l'informationRichardTerrat1
 

Ähnlich wie 20080610 04 - Explorations visuelles de programmes (20)

Introduction Clojure - Geneva JUG - Octobre 2012
Introduction Clojure - Geneva JUG - Octobre 2012Introduction Clojure - Geneva JUG - Octobre 2012
Introduction Clojure - Geneva JUG - Octobre 2012
 
Programmation Fonctionnelle
Programmation FonctionnelleProgrammation Fonctionnelle
Programmation Fonctionnelle
 
ALF 11 - Diagramme de flux de contrôle et WebAssembly
ALF 11 - Diagramme de flux de contrôle et WebAssemblyALF 11 - Diagramme de flux de contrôle et WebAssembly
ALF 11 - Diagramme de flux de contrôle et WebAssembly
 
Programmation fonctionnelle
Programmation fonctionnelleProgrammation fonctionnelle
Programmation fonctionnelle
 
Compte rendu jess
Compte rendu jessCompte rendu jess
Compte rendu jess
 
SdE 2 - Langage C, Allocation de memoire
SdE 2 - Langage C, Allocation de memoireSdE 2 - Langage C, Allocation de memoire
SdE 2 - Langage C, Allocation de memoire
 
traitement-du-signal-avance.pptx
traitement-du-signal-avance.pptxtraitement-du-signal-avance.pptx
traitement-du-signal-avance.pptx
 
Lattice Boltzmann sur architecture multicoeurs vectorielle - Une approche de ...
Lattice Boltzmann sur architecture multicoeurs vectorielle - Une approche de ...Lattice Boltzmann sur architecture multicoeurs vectorielle - Une approche de ...
Lattice Boltzmann sur architecture multicoeurs vectorielle - Une approche de ...
 
ALF 8 - Generation du code
ALF 8 - Generation du codeALF 8 - Generation du code
ALF 8 - Generation du code
 
Google Developer Group (GDG) Aix-Marseille #1 (27/08/2018)
Google Developer Group (GDG) Aix-Marseille #1 (27/08/2018)Google Developer Group (GDG) Aix-Marseille #1 (27/08/2018)
Google Developer Group (GDG) Aix-Marseille #1 (27/08/2018)
 
TP3: Comportement Temps Réel de l'Agent Perception
TP3: Comportement Temps Réel de l'Agent PerceptionTP3: Comportement Temps Réel de l'Agent Perception
TP3: Comportement Temps Réel de l'Agent Perception
 
Mathématiques et Python
Mathématiques et PythonMathématiques et Python
Mathématiques et Python
 
HDR
HDRHDR
HDR
 
Inverse trigonometric functions ii
Inverse trigonometric functions ii Inverse trigonometric functions ii
Inverse trigonometric functions ii
 
Présentation Javascript à l'ESI (Alger)
Présentation Javascript à l'ESI (Alger)Présentation Javascript à l'ESI (Alger)
Présentation Javascript à l'ESI (Alger)
 
Video
VideoVideo
Video
 
Traitement des données massives (INF442, A4)
Traitement des données massives (INF442, A4)Traitement des données massives (INF442, A4)
Traitement des données massives (INF442, A4)
 
Distances sémantiques dans des applications utilisant le web sémantique
Distances sémantiques dans des applications utilisant le web sémantiqueDistances sémantiques dans des applications utilisant le web sémantique
Distances sémantiques dans des applications utilisant le web sémantique
 
Théorie de l'information
Théorie de l'informationThéorie de l'information
Théorie de l'information
 
Cours de Matlab
Cours de MatlabCours de Matlab
Cours de Matlab
 

Mehr von LeClubQualiteLogicielle

20171122 03 - Les tests de performance en environnement DevOps
20171122 03 - Les tests de performance en environnement DevOps20171122 03 - Les tests de performance en environnement DevOps
20171122 03 - Les tests de performance en environnement DevOpsLeClubQualiteLogicielle
 
20171122 04 - Automatisation - formation et certifications
20171122 04 - Automatisation - formation et certifications20171122 04 - Automatisation - formation et certifications
20171122 04 - Automatisation - formation et certificationsLeClubQualiteLogicielle
 
20171122 01 - REX : Intégration et déploiement continu chez Engie
20171122 01 - REX : Intégration et déploiement continu chez Engie20171122 01 - REX : Intégration et déploiement continu chez Engie
20171122 01 - REX : Intégration et déploiement continu chez EngieLeClubQualiteLogicielle
 
20171122 02 - Engage developers to use better coding practices
20171122 02 - Engage developers to use better coding practices20171122 02 - Engage developers to use better coding practices
20171122 02 - Engage developers to use better coding practicesLeClubQualiteLogicielle
 
20171122 - Accueil Club Qualité Logicielle
20171122 - Accueil Club Qualité Logicielle 20171122 - Accueil Club Qualité Logicielle
20171122 - Accueil Club Qualité Logicielle LeClubQualiteLogicielle
 
20151013 - Crédit Mutuel ARKEA : mise en place d'une traçabilité outillée des...
20151013 - Crédit Mutuel ARKEA : mise en place d'une traçabilité outillée des...20151013 - Crédit Mutuel ARKEA : mise en place d'une traçabilité outillée des...
20151013 - Crédit Mutuel ARKEA : mise en place d'une traçabilité outillée des...LeClubQualiteLogicielle
 
20151013 - Agirc arrco : Behavior driven development
20151013 - Agirc arrco : Behavior driven development20151013 - Agirc arrco : Behavior driven development
20151013 - Agirc arrco : Behavior driven developmentLeClubQualiteLogicielle
 
20151013 - Réduire les coûts des tests de performance ?
20151013 - Réduire les coûts des tests de performance ?20151013 - Réduire les coûts des tests de performance ?
20151013 - Réduire les coûts des tests de performance ?LeClubQualiteLogicielle
 
20151013 - Accueil Club Qualité Logicielle
20151013 - Accueil Club Qualité Logicielle 20151013 - Accueil Club Qualité Logicielle
20151013 - Accueil Club Qualité Logicielle LeClubQualiteLogicielle
 
20151013 - DevOps et qualification continue
20151013 - DevOps et qualification continue20151013 - DevOps et qualification continue
20151013 - DevOps et qualification continueLeClubQualiteLogicielle
 
20140410 - Cartographie applicative multi-technologies et analyse d'impact
20140410 - Cartographie applicative multi-technologies et analyse d'impact20140410 - Cartographie applicative multi-technologies et analyse d'impact
20140410 - Cartographie applicative multi-technologies et analyse d'impactLeClubQualiteLogicielle
 
20140410 - Implémentation de squash TM-TA - Architecture et méthodologie
20140410 - Implémentation de squash TM-TA - Architecture et méthodologie20140410 - Implémentation de squash TM-TA - Architecture et méthodologie
20140410 - Implémentation de squash TM-TA - Architecture et méthodologieLeClubQualiteLogicielle
 
20140410 - Gestion des identités, traçabilité des accés - Analogie avec la qu...
20140410 - Gestion des identités, traçabilité des accés - Analogie avec la qu...20140410 - Gestion des identités, traçabilité des accés - Analogie avec la qu...
20140410 - Gestion des identités, traçabilité des accés - Analogie avec la qu...LeClubQualiteLogicielle
 
20140410 - Choisir et implanter un outil de test
20140410 - Choisir et implanter un outil de test20140410 - Choisir et implanter un outil de test
20140410 - Choisir et implanter un outil de testLeClubQualiteLogicielle
 
20130113 02 - TMMI, un modèle pour rentabiliser une organisation de test et a...
20130113 02 - TMMI, un modèle pour rentabiliser une organisation de test et a...20130113 02 - TMMI, un modèle pour rentabiliser une organisation de test et a...
20130113 02 - TMMI, un modèle pour rentabiliser une organisation de test et a...LeClubQualiteLogicielle
 
20130113 06 - Travaux de recherche sur la corrélation entre qualité du code e...
20130113 06 - Travaux de recherche sur la corrélation entre qualité du code e...20130113 06 - Travaux de recherche sur la corrélation entre qualité du code e...
20130113 06 - Travaux de recherche sur la corrélation entre qualité du code e...LeClubQualiteLogicielle
 
20130113 05 - Inspection continue et roadmap 2013
20130113 05 - Inspection continue et roadmap 201320130113 05 - Inspection continue et roadmap 2013
20130113 05 - Inspection continue et roadmap 2013LeClubQualiteLogicielle
 
20130113 04 - Tests d'integration et virtualisation - La vision IBM
20130113 04 - Tests d'integration et virtualisation - La vision IBM20130113 04 - Tests d'integration et virtualisation - La vision IBM
20130113 04 - Tests d'integration et virtualisation - La vision IBMLeClubQualiteLogicielle
 
20130523 06 - The mathematics the way algorithms think / the mathematics the ...
20130523 06 - The mathematics the way algorithms think / the mathematics the ...20130523 06 - The mathematics the way algorithms think / the mathematics the ...
20130523 06 - The mathematics the way algorithms think / the mathematics the ...LeClubQualiteLogicielle
 

Mehr von LeClubQualiteLogicielle (20)

20171122 03 - Les tests de performance en environnement DevOps
20171122 03 - Les tests de performance en environnement DevOps20171122 03 - Les tests de performance en environnement DevOps
20171122 03 - Les tests de performance en environnement DevOps
 
20171122 04 - Automatisation - formation et certifications
20171122 04 - Automatisation - formation et certifications20171122 04 - Automatisation - formation et certifications
20171122 04 - Automatisation - formation et certifications
 
20171122 01 - REX : Intégration et déploiement continu chez Engie
20171122 01 - REX : Intégration et déploiement continu chez Engie20171122 01 - REX : Intégration et déploiement continu chez Engie
20171122 01 - REX : Intégration et déploiement continu chez Engie
 
20171122 02 - Engage developers to use better coding practices
20171122 02 - Engage developers to use better coding practices20171122 02 - Engage developers to use better coding practices
20171122 02 - Engage developers to use better coding practices
 
20171122 - Accueil Club Qualité Logicielle
20171122 - Accueil Club Qualité Logicielle 20171122 - Accueil Club Qualité Logicielle
20171122 - Accueil Club Qualité Logicielle
 
20151013 - Crédit Mutuel ARKEA : mise en place d'une traçabilité outillée des...
20151013 - Crédit Mutuel ARKEA : mise en place d'une traçabilité outillée des...20151013 - Crédit Mutuel ARKEA : mise en place d'une traçabilité outillée des...
20151013 - Crédit Mutuel ARKEA : mise en place d'une traçabilité outillée des...
 
20151013 - Agirc arrco : Behavior driven development
20151013 - Agirc arrco : Behavior driven development20151013 - Agirc arrco : Behavior driven development
20151013 - Agirc arrco : Behavior driven development
 
20151013 - Réduire les coûts des tests de performance ?
20151013 - Réduire les coûts des tests de performance ?20151013 - Réduire les coûts des tests de performance ?
20151013 - Réduire les coûts des tests de performance ?
 
20151013 - Accueil Club Qualité Logicielle
20151013 - Accueil Club Qualité Logicielle 20151013 - Accueil Club Qualité Logicielle
20151013 - Accueil Club Qualité Logicielle
 
20151013 - DevOps et qualification continue
20151013 - DevOps et qualification continue20151013 - DevOps et qualification continue
20151013 - DevOps et qualification continue
 
20140410 - Cartographie applicative multi-technologies et analyse d'impact
20140410 - Cartographie applicative multi-technologies et analyse d'impact20140410 - Cartographie applicative multi-technologies et analyse d'impact
20140410 - Cartographie applicative multi-technologies et analyse d'impact
 
20140410 - Implémentation de squash TM-TA - Architecture et méthodologie
20140410 - Implémentation de squash TM-TA - Architecture et méthodologie20140410 - Implémentation de squash TM-TA - Architecture et méthodologie
20140410 - Implémentation de squash TM-TA - Architecture et méthodologie
 
20140410 - Gestion des identités, traçabilité des accés - Analogie avec la qu...
20140410 - Gestion des identités, traçabilité des accés - Analogie avec la qu...20140410 - Gestion des identités, traçabilité des accés - Analogie avec la qu...
20140410 - Gestion des identités, traçabilité des accés - Analogie avec la qu...
 
20140410 - Choisir et implanter un outil de test
20140410 - Choisir et implanter un outil de test20140410 - Choisir et implanter un outil de test
20140410 - Choisir et implanter un outil de test
 
20130113 02 - TMMI, un modèle pour rentabiliser une organisation de test et a...
20130113 02 - TMMI, un modèle pour rentabiliser une organisation de test et a...20130113 02 - TMMI, un modèle pour rentabiliser une organisation de test et a...
20130113 02 - TMMI, un modèle pour rentabiliser une organisation de test et a...
 
20130113 06 - Travaux de recherche sur la corrélation entre qualité du code e...
20130113 06 - Travaux de recherche sur la corrélation entre qualité du code e...20130113 06 - Travaux de recherche sur la corrélation entre qualité du code e...
20130113 06 - Travaux de recherche sur la corrélation entre qualité du code e...
 
20130113 05 - Inspection continue et roadmap 2013
20130113 05 - Inspection continue et roadmap 201320130113 05 - Inspection continue et roadmap 2013
20130113 05 - Inspection continue et roadmap 2013
 
20130113 04 - Tests d'integration et virtualisation - La vision IBM
20130113 04 - Tests d'integration et virtualisation - La vision IBM20130113 04 - Tests d'integration et virtualisation - La vision IBM
20130113 04 - Tests d'integration et virtualisation - La vision IBM
 
20130523 06 - The mathematics the way algorithms think / the mathematics the ...
20130523 06 - The mathematics the way algorithms think / the mathematics the ...20130523 06 - The mathematics the way algorithms think / the mathematics the ...
20130523 06 - The mathematics the way algorithms think / the mathematics the ...
 
20130523 05 - Cyclomatic complexity
20130523 05 - Cyclomatic complexity20130523 05 - Cyclomatic complexity
20130523 05 - Cyclomatic complexity
 

20080610 04 - Explorations visuelles de programmes

  • 1. Explorations Visuelles de Programmes Françoise Balmas LIASD – Université Paris 8 Club Qualimétrie – Paris – 10 juin 2008
  • 2. • Expériences de visualisation • Contexte de recherche – Exploration de programmes – Mise au point des outils • 3 Exemples • Harald Wertz, Rim Chaabane
  • 3. Foo / Series • 33 LOC (Lisp), 8 fonctions • Enseignement • Compréhension de programmes • Très difficile
  • 4. (define (foo s) (foo2 1 (nc s) s)) (define (foo2 p m s) (unless (> p m) (rec p nil s p) (foo2 (+ p 1) m s) )) (define (rec x sol s p) (if (= x 0) (im s sol p) (rec (- x 1) (cons (kamm (nthcdr (- x 1) s) p) sol) s p))) (define (kamm s p) (when (number? (nth p s)) (kamm2 (- (nth p s) (car s)) (nthcdr p s) p) )) (define (kamm2 inc s p) (cond ((null? (and s (number? (nth p s)))) inc) ((= inc (- (nth p s) (car s))) (kamm2 inc (nthcdr p s) p)) (t nil))) (define (nc l) (if (and l (number? (car l))) (+ 1 (nc (cdr l))) 0)) (define (im l sol p) (unless (member nil sol) (im2 (length sol) (length l) sol p l))) (define (im2 lsol ll sol p l) (set-cdr! (last sol) sol) (printf "--> : %on" (calcule 0 sol lsol ll p l)) ) (define (calcule n sol lsol ll p l) (unless (>= n ll) (cons (+ (nth (% n lsol) l) (* (/ n p) (car sol))) (calcule (+ n 1) (cdr sol) lsol ll p l))))
  • 5. +1 +1 (foo '(1 2 1 3 X X)) +0 +0 Succes (0 1) pas 2 --> (1 2 1 3 1 4) -1 (foo '(1 2 1 3 1 4 X X X X)) +2 +3 Succes (0 1) pas 2 --> (1 2 1 3 1 4 1 5 1 6) Succes (2 -1 3) pas 3 --> (1 2 1 3 1 4 5 0 7 7) (foo '(1 2 4 8 16 X X)) Echec
  • 6.
  • 7.
  • 8.
  • 9.
  • 10. Robot virtuel • 1600 LOC (Lisp), 143 fonctions, 17 macros, 18 escape • Enseignement • Vérification • Complexe car développé à plusieurs périodes, parties réutilisées
  • 11. (createTable 4 4) (creObjet 'a 'boite 'taille '(2 2 3)) (creObjet 'b 'cube 'taille 2) (creObjet 'c 'block 'taille '(1 2)) (creObjet 'd 'block 'taille '(2 1)) (mapc '(e f g h) 'creObjet) (showTable) la Table : a a b b a a b b c c d e f g d h (pose-sur 'a 'b) (pose-sur 'd 'c) (pose-sur 'd 'Table) (pose-dans 'c 'a) (pose-dans 'd 'a) (showSur) a sur b c dans a d dans a (showTable) la Table : nil nil b b nil nil b b nil nil nil e f g nil h
  • 12.
  • 13.
  • 14.
  • 15.
  • 16. Sudoku • 3300 LOC (Tcl/Tk), 110 procédures • Enseignement • Maintenance, refactoring • « Legacy » car développé en plusieurs étapes, parties presque redondantes
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22. Expériences d’exploration visuelle • Pistes pour – Observer des comportements inattendus – Détecter des bugs – Suggérer des optimisations – … • A valider avec d’autres approches