Tristan Cazenave (Paris 8)
Métaprogrammation logique
Séminaire CHM du LIMSI
L'écriture de programmes qui résolvent efficacement des problèmes
dans des domaines très complexes est souvent une tâche longue et difficile.
Elle est difficile, parce que les connaissances utiles aux programmes
sont élaborées et difficiles à énoncer. Elle est longue,
car il faut donner au programme un très grand nombre de connaissances.
Pour le jeu de Go par exemple (le jeu à deux joueurs et à information
complète le plus complexe), les meilleurs programmes ont demandé de nombreuses
années de travail à leurs auteurs. Ils ont cependant
un niveau très inférieur
à celui des meilleurs joueurs humains.
Dès lors, une approche
méta de ce type
de problèmes semble intéressante :
au lieu d'essayer de programmer le comportement d'un bon joueur de Go,
il peut être plus astucieux de programmer le comportement
d'un bon programmeur de jeu de Go.
Pour cela, nous avons utilisé des méthodes de métaprogrammation logique
dans le système Introspect.
A partir d'une définition logique d'un problème,
Introspect écrit un programme pour résoudre ce problème.
On présentera l'application au jeu de Go ainsi que d'autres
applications et son auto-application.